首先会发生啥,MovieClip.onLoad() 或 Event.ENTER_FRAME?

Posted

技术标签:

【中文标题】首先会发生啥,MovieClip.onLoad() 或 Event.ENTER_FRAME?【英文标题】:What happens first, MovieClip.onLoad() or Event.ENTER_FRAME?首先会发生什么,MovieClip.onLoad() 或 Event.ENTER_FRAME? 【发布时间】:2013-02-25 18:14:59 【问题描述】:

作为一个学校项目,我正在用 Flash 制作一个小游戏,我想知道放置影片剪辑时会首先触发什么 - onLoad 函数或 ENTER_FRAME 事件。

任何帮助将不胜感激。

编辑:我删除了 onLoad,因为当对象放在舞台上时它实际上并没有被调用。

var loaded:Boolean = false;
var angle:Number = 0; //in radians
this.addEventListener(Event.ENTER_FRAME, update);
function init():void 
    //get projectile position based on relation to mouse and spawning point.
    trace("init");
    loaded = true;
    this.angle = Math.atan2(mouseY - this.y, mouseX - this.x);

function update(e:Event):void 
    /* TRIG TIME! Move the object a certain amount
     * of pixels-- based on the delta, in the specified angle.
     */
    if (!loaded) 
        init();
    
    trace("update");
    var slope:Number = Math.tan(angle);

不过,这个方法可能还是行不通……

【问题讨论】:

也许你可以使用这两个并为它们中的每一个添加一个 trace() 函数,如 trace("OnLoad here") & trace("Enter frame") 并查看显示在先输出,只是猜测 我很想知道结果:) 好吧,我添加了跟踪函数,但它们没有显示在输出窗口中,所以我认为我没有找到正确的位置,或者函数没有得到叫。你知道我应该在哪里找到跟踪的输出吗? :我 实际上我设法让更新工作,但初始化不工作。 你能贴一些代码让我看看你是怎么设置的吗? 【参考方案1】:

在这种情况下,onLoad 似乎不像我预期的那样工作——我通过将 onLoad 函数更改为 ADDED_TO_STAGE 事件来解决这个问题。我将类的所有动作脚本代码从 flash 文件中移出,并放入单独的动作脚本文件中,并将 event.ENTER_FRAMEevent.ADDED_TO_STAGE 事件的事件侦听器放入类的构造函数中,现在整个类的工作方式就像魅力。

public function Projectile() 
    this.addEventListener(Event.ADDED_TO_STAGE, init);
    this.addEventListener(Event.ENTER_FRAME, update);
    super();

在函数更新之前调用了函数init,现在我可以继续我的工作了!

特别感谢Don帮我解决这个难题

【讨论】:

【参考方案2】:

在 actionscript 3 中,您必须添加一个侦听器,而不是使用 onLoad, 所以代替 MovieClip.onLoad() 做:

MovieClip.addEventListener(Event.ADDED,mcLoaded);

function mcLoaded(e:Event):void 

trace("MovieClip added.");


关于问的问题, ADDED / ADDED_TO_STAGE 在 ENTER_FRAME 之前运行。

此解决方案适用于时间线代码(不是单独的 .as 文件。OP 有其他情况的解决方案。)

【讨论】:

以上是关于首先会发生啥,MovieClip.onLoad() 或 Event.ENTER_FRAME?的主要内容,如果未能解决你的问题,请参考以下文章

当变量超出范围时会发生啥?

zk 三个节点的情况下,挂掉节点会发生啥?

AI打开时提示有更新版本的Illustrator生成,可能会发生数据丢失,打开之后啥也没有怎么解决这个问题,

notifyAll() 会发生啥? [复制]

SQL 索引视图:如果数据发生变化会发生啥

BeginProcessRequest() 中会发生啥?