0

我想开始一个项目。但是,在做文书工作时,我意识到一种情况如下,

比如说,我们有 3 个班级。

  1. Main.as,
  2. 作为,
  3. B.as

在这里,“Main.as”是一个创建 A 和 B 实例的中心类。

A 类有一些函数,比如带有 ENTER_FRAME 事件的“updatePosition(e:Event)”。

B 类需要通过“Main.as”从 A 类的“updatePosition(e:Event)”获取更新

如何仅通过一个 ENTER_FRAME 事件和仅在 A.as 类中的事件来实现这一点?

4

2 回答 2

2

这是一种简单的方法,但我相信还有很多更好的方法(例如使用自定义事件或 AS3 信号库):

主文件

private function eFrame(e:Event) 
{
    a.runEvents();
    b.runEvents();
}

A.as. B.as

public function runEvents()
{
   // Run whatever events you need to run
}

这将为您提供与 3 个 ENTER_FRAME 事件相同的效果,但没有开销,但是您将有大量函数调用的开销。

于 2012-07-26T13:30:47.057 回答
0

为什么不在 main.as 中放置一个 ENTER_FRAME 处理程序并从那里调用其他类的更新?

public class Main extends Sprite
{
    private var _a:A = new A();
    private var _b:B = new B();
    public function Main()
    {
       if(stage) init();
       else addEventListener(Event.ADDED_TO_STAGE,init);

    }

    private function init(e:Event=null):void
    {
        removeEventListener(Event.ADDED_TO_STAGE,init);
        stage.addEventListener(Event.ENTER_FRAME,onEnterFrame);
    }

    private function onEnterFrame(e:Event):void
    {
          _a.updatePosition();
          _b.updatePosition();
    }

}
于 2012-07-26T13:28:07.460 回答