0

我有 2 部电影 (swf) 必须从单个文件运行。

它们都有单独的预加载器。

我加载第一部电影并在它播放时停止它。为了播放第二部电影,我正在使用计时器。定时器必须运行到它到期才能移动到第二部电影。

这是代码。

var today:Date = new Date();

var currentTime = today.getTime();

var targetTime =  currentTime + 20000;


this.onEnterFrame = function()
{
//Determines how much time is left.  Note: Leaves time in milliseconds
var timeLeft = targetTime - currentTime;

if(timeLeft<0)
{

    gotoAndPlay(3);
    }

}

它发出警告 - 场景 1、图层“动作”、第 2 帧、第 15 行警告:1090:迁移问题:Flash Player 在 ActionScript 3.0 的运行时不会自动触发 onEnterFrame。您必须首先使用 addEventListener ('enterFrame', callback_handler) 为事件注册此处理程序。

如何处理?

4

1 回答 1

0

这是 ActionScript 3,因此 AS2 样式的 on-functions 不再起作用。而不是使用这个:

this.onEnterFrame = function () {
    // code...
}

用这个:

this.addEventListener(Event.ENTER_FRAME, function (e:Event) {
    // code...
});

在 AS3 中,新的事件模型替换了很多 AS2 的自动调用函数,结果证明这是一件好事。一旦您习惯了新语法,它就会比 AS2 提供的任何东西都要强大得多。

即使这样可以修复错误,您的代码仍然无法执行任何操作。代码本身存在多个问题,但实际上,无论如何,您不应该那样处理它。改用Timer类!

var timer:Timer = new Timer(20000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (e:TimerEvent) {
    gotoAndPlay(3);
});
timer.start();
于 2012-12-28T07:17:19.517 回答