2016-09-15 67 views
-1

前言:我不是程序员,我是一名艺术家,我在AS3非常糟糕,并且使用非常基本的方法来实现我想要的东西,即使需要整整一个星期才能算出它出来并结束了1000多行冗余代码。在数组中切换项目

问题:我在舞台上的数组中有10个按钮。他们每个人都有一个“in”和“out”动画。如何轻松点击任何按钮,并在播放之前点击过的任何其他按钮的“out”动画时播放“in”动画?什么是最简单的方法来完成这一点?

回答

1

无论你有你的代码来处理按钮按钮,通过按钮阵列循环,并检查其状态(或任何变量/属性告诉你,如果按钮是“in”或“out”)_state状态。如果它找到一个“in”,则调用使其“熄灭”的函数。

一些伪代码,你要考虑:

function buttonClicked(e:MouseEvent):void{ 
    for (var i:int = 0; i < buttonArray.length; i++){ 
     if (buttonArray[i]._state == "in"){ 
      buttonArray[i]._state = "out"; 
      // play button "out" animation 
     } 
    e.target._state = "in"; 
    // play e.target "in" animation 
} 
+0

我理解这个概念,但在实践中我没有。 ._state令我困惑。你如何将一个变量应用到按钮实例? 我已经设置了2个不同的数组:1生成按钮名称,第二个用于保存用于跟踪活动/非活动状态的按钮变量。 – Golgo13

+0

添加您在其中创建按钮的代码。 (或者它们是在IDE中制作的?) –

+0

如果它们是在IDE中制作的,我认为您可以选择按钮并按F9打开操作面板,然后在每个按钮实例中添加'var _state:String;'。如果您在运行时创建它们会更容易。你所要做的就是在类的.as文件的构造函数之上添加相同的代码行。 –