【问题标题】:flashfirebug As3 console timer or setInterval not workingflashfirebug As3 控制台计时器或 setInterval 不起作用
【发布时间】:2012-05-21 16:48:04
【问题描述】:

我尝试在 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;”

你能帮我解决这个问题吗?计时器或 setInterval 函数? 谢谢, 约翰

【问题讨论】:

    标签: actionscript-3 flash actionscript firebug


    【解决方案1】:

    这已经很老了。但回答它以帮助将来的任何人。

    FlashFirebug 4.8.0 仍在审批队列中(在回答时)应该允许您在运行的 SWF 中注入 SWF 文件。

    当您遇到控制台限制时,这将允许您使用完整的 AS3 功能。

    【讨论】:

      【解决方案2】:

      问题出在这一行:

      myTimer.addEventListener(TIMER, timerHandler);
      

      应该是:

      myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
      //              add this ^^^^^^^^^^^
      

      【讨论】:

        【解决方案3】:

        我不确定你是否已经对其进行了排序,但它看起来像:

        var num:int = setInterval(d, 2000);
        

        如果你导入 import flash.utils.clearInterval;你可以像这样停止它:

        clearInterval(num)
        

        【讨论】:

          【解决方案4】:

          好吧,看起来没有办法做到这一点。 FlashFirebug 使用D.eval 库,我现在找不到它支持计时器或间隔。

          【讨论】:

          • 我问过 o-minds 但他们没有回复.. 它只使用 D.eval?你确定吗?..所以它非常有限..这个库是否支持回调?..我认为不是因为试图在 Flash 中设置回调以对 javascript 计时器做出反应并且无法使其工作..? ...
          • 错误Error #1034: Type Coercion failed: cannot convert r1.deval.rt::FunctionDef@50ef781 to Function. 说这都是关于 D.eval 的。是的,我没有找到任何方法来添加事件侦听器或类似的东西......
          • damnn...非常糟糕...无法对控制台执行某种自动化脚本...起初我认为此错误与缺少导入库有关,...你知道有什么方法可以在没有任何计时器的情况下自动将跟踪打印到 javascript 控制台吗? ..是的,如果没有计时器或回调计时器,这将无法完成.. 无论如何,谢谢艺术:P
          • 打印痕迹是什么意思? Simple Firebug 的控制台日志不是您想要的? labs.findsubstance.com/2008/02/26/…
          • 有什么理由不能通过 ExternalInterface 将 Flash 中嵌入的数据推送到 Firebug,而不是反过来呢?您可以访问 Flash 的源代码吗?
          【解决方案5】:

          我不确定您收到的错误消息,但在您为计时器分配事件侦听器时,您的代码中确实存在错误。您需要从 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 上有一个不错的解释。

          【讨论】:

          • 似乎没有 timerEvents,在这个控制台中...因为它给出的错误..
          猜你喜欢
          • 2018-05-23
          • 1970-01-01
          • 2013-05-29
          • 2019-08-28
          • 1970-01-01
          • 2018-07-05
          • 2011-06-05
          • 2013-01-18
          • 2018-10-16
          相关资源
          最近更新 更多