2010-01-11 45 views
1

嘿我想要构建这个简单的调试器类,所以我可以看到浏览器控制台内的闪存变量,如果我在闪存ide内测试它,我会得到很好的旧示踪器。但由于某种原因ExternalInterface.available返回true里面的Flash IDE!?为什么ExternalInterface在Flash里面可用

package libs 
{ 
    import flash.external.ExternalInterface; 

    public class debug 
    { 
     public function tracer(variable:*):void 
     { 
      if(ExternalInterface.available) 
      { 
       if(variable is String) 
       { 
        variable = '"'+variable+'"'; 
       } 
       ExternalInterface.call('console.log(' + variable + ')'); 
      } 
      else 
      { 
       trace(variable); 
      } 
     } 
    } 
} 

回答

5

您可以使用flash.system.Capabilities.playerType,以确定是否在Flash IDE中或不很...

import flash.system.Capabilities; 

if (Capabilities.playerType == 'External') 
    trace("you're in the ide"); 
else 
    trace("you're not in the ide"); 
+0

真棒!谢谢! – antpaw 2010-01-11 13:38:49

2

太棒了,我得和那个一起玩。

为什么你如此,如果你正在使用Flash CS4 的原因是因为在IDE中的舞台是一个SWF运行, 和3D的东西,骨子里是从IDE使用的ExternalInterface的 阶段SWF调用。

会很酷,破解! 谢谢, 乔治