如何在帧之间保持movieclip的颜色?

时间:2011-11-23 13:18:12

标签: flash actionscript-3 colors frames movieclip

我的应用有2帧;在第1帧中有5个MC并且在DOUBLE_CLICK事件中目标的颜色发生变化并转到下一帧2.
在第2帧中,我有一个返回第1帧的按钮。

当我返回第1帧时,如何保持MC颜色?

public class test extends MovieClip
{
    public function test()
    {
        var myMCTable:Array = [myMC1, myMC2, myMC3, myMC4, myMC5];
        for (var i:uint = 0; i < myMCTable.length; i++)
        {
            myMCTable[i].doubleClickEnabled = true;
            myMCTable[i].addEventListener(MouseEvent.DOUBLE_CLICK, changeColor);
        }
    }

    private function changeColor(e:MouseEvent) : void
    {
        var newColorTransform:ColorTransform = (e.target).transform.colorTransform;
        newColorTransform.color = Math.random() * 0xFFFFFF;
        (e.target).transform.colorTransform = newColorTransform;
        nextFrame();
        goBack_btn.addEventListener(MouseEvent.CLICK, goBack);
    }

    private function goBack(e:MouseEvent) : void
    {
        prevFrame();
    }
}

2 个答案:

答案 0 :(得分:0)

最简单的方法是拥有三个帧,在第1帧创建MC并在第2帧和第3帧之间切换。

您还可以将颜色信息存储在对象中。

_color[e.target.id] = newColorTransform.color;

然后检索并应用它。但是,您需要在前一帧,第三帧上初始化数据对象。如果不这样做,它将被重新初始化,你将失去你的颜色。

答案 1 :(得分:0)

如果你为影片剪辑(你有5个我相信)制作了一个他们共享的课程。创建一个名为myColor的类属性,然后在双击并更改每个动画片段对象的“myColor”属性时,可以使“goBack()”方法从其自己的属性重新应用每个动画片段的颜色。

这有意义吗?