我曾尝试在FlashFirebug插件的as3控制台中使用计时器,但它不起作用(尝试了几种组合)。计时器代码如下:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;
var myTimer = new Timer(1000, 2);
myTimer.addEventListener(TIMER, timerHandler);
myTimer.start();
function timerHandler(event:TimerEvent){trace("timerHandler: ");}
//但它会出现此错误:
Error #1034: Type Coercion failed: cannot convert r1.deval.rt::FunctionDef@50ef781 to Function.
//也尝试使用此代码的setInterval:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;
import flash.utils.setInterval;
function d(){trace("cc");}
setInterval(d, 2000);
//但是控制台错误说:
Error: Call to a possibly undefined method.
//可能需要导入一些东西。尝试导入“import flash.utils.setInterval;”但是给出了这个错误:“错误:您必须先导入该类才能实例化它。例如,import flash.display.MovieClip;”
你能帮帮我吗? timer或setInterval函数? 谢谢, 约翰
答案 0 :(得分:0)
我不确定您收到的错误消息,但在为您的计时器分配事件监听器时,您的代码中确实存在错误。您需要从TimerEvent类访问事件名称常量,如下所示:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;
var myTimer = new Timer(1000, 2);
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
myTimer.start();
function timerHandler(event:TimerEvent){trace("timerHandler: ");}
advantages of using the ActionScript 3.0 Timer class over setInterval上有一个不错的解释。
答案 1 :(得分:0)
好吧,看起来没有办法实现这一目标。 FlashFirebug使用D.eval库,我现在无法找到它支持定时器或间隔。
答案 2 :(得分:0)
我不确定你是否已将它排序但看起来像是:
var num:int = setInterval(d, 2000);
如果导入导入flash.utils.clearInterval;你可以像以下一样阻止它:
clearInterval(num)
答案 3 :(得分:0)
问题在于这一行:
myTimer.addEventListener(TIMER, timerHandler);
应该是:
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
// add this ^^^^^^^^^^^
答案 4 :(得分:0)
这很老了。但回答它是为了帮助将来的任何人。
仍然在批准队列中的FlashFirebug 4.8.0(在回答时)应该允许您在正在运行的SWF中注入SWF文件。
当您使用控制台达到限制时,这将允许您使用完整的AS3功能。