Flash AS2将多个动态文本字段更新为时间轴中的所有帧

Flash AS2将多个动态文本字段更新为时间轴中的所有帧,flash,actionscript-2,flash-cs5,Flash,Actionscript 2,Flash Cs5,如何在一个具有4帧的时间线中使用不同的实例名称更新多个动态文本字段 我有一个名为(button)的movieclip,它使用具有相同名称的自定义类 1st Frame: - Layer 1: Dynamic text named (txt1) - Layer 2: Dynamic text named (txtbg1) 2nd Frame - Layer 1: Dynamic text named (txt2) - Layer 2: Dynamic text named (txtbg2) 4

如何在一个具有4帧的时间线中使用不同的实例名称更新多个动态文本字段

我有一个名为(button)的movieclip,它使用具有相同名称的自定义类

1st Frame: - Layer 1: Dynamic text named (txt1) - Layer 2: Dynamic text named (txtbg1) 2nd Frame - Layer 1: Dynamic text named (txt2) - Layer 2: Dynamic text named (txtbg2) 4rd Frame - Layer 1: Dynamic text named (txt4) - Layer 2: Dynamic text named (txtbg4) 在我的主场景中,我有一个名为“main”的movieclip,它使用相同的类和相同的名称。在那个moviecplip中包含了前面提到的两个按钮

自定义类“主”代码:


感谢并为我糟糕的英语感到抱歉。

只有在进入适当的框架时才能设置文本。原因是在帧中创建的文本字段总是在每次输入帧时重新创建。因此,您需要为文本存储变量:

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);
    }
}

对这是我想要避免的。也许可以将“按钮”电影剪辑加倍到一个新的,用硬编码文本,并在需要时动态更改。谢谢你的关注!或者,您可以在Flash CS中使用textField的字段“Variable”(变量)(如上所示)。所以您不需要方法setButtonText,只需要在适当的位置设置txt变量。
    class main extends MovieClip
{
    var button1, button2;
    function main()
    {
        super();
    }
    function onLoad()
    {
        button1.setActivate(true);
        button2.setActivate(true);
        button1.setButtonText("OK");
        button2.setButtonText("CANCEL");
    }
}
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);
    }
}