每隔一次翻转播放不同的动画?

时间:2015-12-31 16:40:07

标签: actionscript-3 flash

我有几个按钮,它们有相应的动画片段。每个动画片段都有两个不同的动画(第一帧从第1帧开始,第二帧在第20帧)。 我希望动画在MOUSE.OVER

上交替播放

现在我想知道如何使用一个函数执行此操作。按钮总是被命名为例如thing和movieclips thing_mc

我在想这样的事情:

var thing_bo:Boolean = false;

function over(e:MouseEvent)
{
    var mcName = e.currentTarget.name + "_mc";
    var yourContainer:DisplayObjectContainer = e.currentTarget.parent as DisplayObjectContainer;
    var mc = yourContainer.getChildByName( mcName );

    var boName = e.currentTarget.name + "_bo";

    if (!this['boName']) {
        mc.gotoAndPlay(1);
        this['boName'] = true; 
    } else {
        mc.gotoAndPlay(20);
        this['boName'] = false; 
    }
}

如何让这个工作?有更简单的方法吗?

编辑:我认为问题只是访问布尔值。 thing_bo上的更改未发生。

2 个答案:

答案 0 :(得分:1)

就像@VasilGerginski所说,最好创建一个Class来实现它,但如果你想在一个框架中这样做,你就有了一个可能的代码(你可以在{{1}中存储一个变量} object):

  

此示例假定您的所有实例都在同一范围内。

MovieClip

Download example

答案 1 :(得分:0)

为什么不为每对按钮/动画创建一个类,例如MenuItem,它将保存对按钮的引用,它触发的动画以及boolean标志属性。这样可以节省每次查询每个元素的时间。 :) OOP我的朋友