如何将动作脚本1-2更改为动作脚本3

时间:2013-12-10 14:20:52

标签: actionscript-3 flash actionscript actionscript-2

在flash中,我创建了一个按钮并给出了此代码的按钮(在AS1-AS2中)

on (release)
{
    gotoAndPlay(5);
    tellTarget("/Anim") //'Anim' is just short form for 'an animation'

    {
        gotoAndPlay(5);
    } // End of TellTarget
}

由于你不能在AS3中给出特定的按钮动作,我给了按钮一个实例名称(按钮实例名称现在是'runButton'),然后决定在动作层中执行此操作。

runButton.addEventListener(MouseEvent.CLICK, startAnimation);


function startAnimation(event:MouseEvent){

    gotoAndPlay(5);
    tellTarget("/Anim")
    {
        gotoAndPlay(5);
    } // End of TellTarget

}

但它给了我一个错误,说明在

之后预计会出现'{'

function startAnimation(event:MouseEvent):void {

行,它说最后一行有一个意外的'}'。知道如何解决这个问题吗?

注意:Anim是主时间轴上的动画片段。当我双击Anim movieclip时,它有自己的时间轴。我希望时间轴与主时间轴一起播放,因此'gotoandPlay(5)然后执行'tellTarget(Anim')后的其他gotoAndPlay。

4 个答案:

答案 0 :(得分:1)

使用“with”代替tellTarget。但我根本不推荐这个。 代替:

this[ "/Anim" ].gotoAndPlay(5);

答案 1 :(得分:1)

类似于Discipol的回答,虽然我认为你需要先投射到电影剪辑:

MovieClip(this[ "/Anim" ]).gotoAndPlay(5);

答案 2 :(得分:0)

自Flash 5(http://help.adobe.com/en_US/as2/reference/flashlite/WS5b3ccc516d4fbf351e63e3d118cd9b5f6e-7a2b.html

以来,

tellTarget已弃用

function startAnimation(event:MouseEvent):void{
    runButton.gotoAndPlay(5);

    //that slash in the beginning of name (/Anim) I have no idea what to do with, 
    //basically it used to tell a moveiclip named "/Anim" to "gotoAndPlay" however,
    //that is an invalid name so you probably have to change the name of it inside 
    //Flash unless I'm missing some kind of awesome legacy from old AS1/AS2.
    runButton.Anim.gotoAndPlay(5); 
}
runButton.addEventListener(MouseEvent.CLICK, startAnimation);

答案 3 :(得分:0)

好的找到了答案,结果我需要改变

tellTarget("/Anim") //'Anim' is just short form for 'an animation'

{
    gotoAndPlay(5);
} // End of TellTarget

Anim.gotoAndPlay(5)

并且有效。