我有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:迁移问题:在ActionScript 3.0中,Flash Player不会在运行时自动触发onEnterFrame。您必须首先使用addEventListener('enterFrame',callback_handler)为事件注册此处理程序。
如何处理?
答案 0 :(得分: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();