如何保持AS3代码简单

时间:2012-01-05 04:52:56

标签: actionscript-3 events

这是我原来的伪代码:

function1(); 

function1():void{
   //do something
   after mouseclick do function2
}
function2():void{
   //do something
   after animationfinish do function3
}
etc..

我能把它变成这样的东西吗?:

function1();
after mouseclick do function2()
after animationfinish do function3()

让听众进入最高级别的简单方法是什么?

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,当调用function1时,您想要addEventListener(MouseEvent.CLICK, function2);

您是否正在使用Actiosncript制作动画或关键帧?

我知道使用TweenMax你可以添加一个函数来在补间结束时调用。如果使用fl.Transtions.Tween,您可以侦听TweenEvent.MOTION_FINISH,然后调用function3。我不太喜欢Flash中的时间线,因为我对编码感觉更有控制力,但我知道你可以在动画的最后一帧添加代码来调用function3。

如果我完全失踪,你可以随意澄清你究竟在寻找什么。

答案 1 :(得分:-1)

如果我很了解 - 你喜欢创建功能链。

我取决于你喜欢做什么,问题在于许多可能性。 对于少数几个函数,我使用这个类: https://github.com/turbosqel/as3SupportLib/blob/master/as3SupportLib/src/turbosqel/utils/CountCall.as

您还可以使用更深入,更有弹性的方式并添加下一个回调函数:

var func:Function = function():void { // declare new function
   ... function body // your class actions
   for each(var call:Function in arguments.callee){ // get functions
      call(); // call function
   }
}

func["someFunction"] = someFunction; // add function as dynamic value
func["otherFunction"] = anotherFunctionToCall; // add another function

func(); // call function