修改Action Script 3.0中的按钮

时间:2009-10-21 23:17:03

标签: flash button

我正在使用Action Script 3.0在Flash中开展一个项目。我将图形转换为按钮,以便我可以在整个项目中使用它作为各种按钮,但我无法弄清楚如何仅修改舞台上新按钮的实例而不修改整个类。例如,如果我的第一个按钮具有唯一的实例名称并且被称为“Click Me”并且我将该按钮的另一个实例拉到舞台上并尝试给它一个新的实例名称,然后将其重新标记为“Next”,它自动修改“Click Me”按钮以说出“Next”。任何人都可以帮助我,所以我不必为我制作的每个按钮创建一个新类吗?

1 个答案:

答案 0 :(得分:0)

这种行为很正常。您创建的库中的按钮不是实例。当你将它拖到舞台上然后你正在创建实例但是如果你改变了某些东西,比如替换它中的文本字段,那么你正在改变这个类。

实现目标的一种方法是创建一个movieclip而不是一个按钮。然后在你的movieclip中添加一个动态文本域。在所有的movieclip实例上(如果从库拖到舞台,请确保它有一个名称),添加以下代码:

myBtn1.buttonMode = true;
myBtn2.buttonMode = true;

现在,对于每个实例,您可以通过执行此操作来更改文本字段,假设剪辑内的动态文本字段称为txtLabel:

myBtn1.txtLabel.text = "hello";
myBtn2.txtLabel.text = "world";

如果您想要翻转状态,那么您可以这样做,首先为动画片段中的每个状态添加一个关键帧,在文本字段的单独图层上执行此操作,并为每个部分提供一个帧标签:

myBtn1.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver)

function onMouseOver(e:MouseEvent)
{
  myBtn1.gotoAndStop("OVER_STATE");
 //can use e.target.gotoAndStop("OVER_STATE") instead so that you can reuse the one
 //function for all buttons. The above is just to illustrate the point.
}

另外,可以简单地扩展SimpleButton类,然后添加一个属性来更改您在其中创建的动态文本字段。