0

4フレームのタイムラインで、異なるインスタンス名を持つ複数の動的テキストフィールドを更新するにはどうすればよいですか?

同じ名前のカスタムクラスを使用した(ボタン)という名前のムービークリップがあります

1番目のフレーム:
-レイヤー1:(txt1)という名前の動的テキスト
-レイヤー2:(txtbg1)という名前の動的テキスト

2番目のフレーム
-レイヤー1:(txt2)という名前の動的テキスト
-レイヤー2:(txtbg2)という名前の動的テキスト

4フレーム目
-レイヤー1:(txt4)という名前の動的テキスト
-レイヤー2:(txtbg4)という名前の動的テキスト

カスタムクラスの「ボタン」コード:

class button extends MovieClip {
function button() { super(); }
function onLoad() {}
function setActivate(tf)
{
    delete this.onPress;
    delete this.onRelease;
    delete this.onRollOver;
    delete this.onRollOut;

    if (tf)
    {
        this.gotoAndStop(2);
        this.onRollOver = function()
        {
            this.gotoAndStop(3);
        }
        this.onRollOut = function ()
        {
            this.gotoAndStop(2);
        }
        this.onPress = function ()
        {
            this.gotoAndStop(4);
        }
        this.onRelease = function ()
        {
            if (_currentframe == 4)
            {
                //CLICKED DO ACTION
            }
            this.gotoAndStop(3);
        };
        return;
    }
    else
    {
        this.gotoAndStop(1);
    }
}
function setButtonText(txt)
{
    this["txt1"].text = txt;
    this["txtbg1"].text = txt;
    this["txt2"].text = txt;
    this["txtbg2"].text = txt;
    this["txt4"].text = txt;
    this["txtbg4"].text = txt;
}
}

私のメインシーンには、同じ名前の同じクラスを使用した「main」という名前のムービークリップがあります。そのmoviecplipには、前に言った2つのボタンが含まれています

カスタムクラスの「メイン」コード:

    class main extends MovieClip
{
    var button1, button2;
    function main()
    {
        super();
    }
    function onLoad()
    {
        button1.setActivate(true);
        button2.setActivate(true);
        button1.setButtonText("OK");
        button2.setButtonText("CANCEL");
    }
}

私の悪い英語に感謝し、申し訳ありません。

4

1 に答える 1

1

適切なフレームに入ったときにテキストを設定する唯一の方法があります。その理由は、フレーム内に作成されたテキストフィールドは、フレームに入るたびに常に再作成されるためです。したがって、テキストの変数を格納する決定:

var txt:String; //for storing your text 
function setActivate(tf)
{
    delete this.onPress;
    delete this.onRelease;
    delete this.onRollOver;
    delete this.onRollOut;

    if (tf)
    {
        this.gotoAndStop(2);
        this.onRollOver = function()
        {
            this.gotoAndStop(3);
        }
        this.onRollOut = function ()
        {
            this.gotoAndStop(2);
            setButtonText(txt);
        }
        this.onPress = function ()
        {
            this.gotoAndStop(4);
            setButtonText(txt);
        }
        this.onRelease = function ()
        {
            if (_currentframe == 4)
            {
                //CLICKED DO ACTION
            }
            this.gotoAndStop(3);
        };
        return;
    }
    else
    {
        this.gotoAndStop(1);
        setButtonText(txt);
    }
}
于 2013-01-30T06:39:25.843 に答える