2012-03-19 57 views
0

我们可以在java脚本中轻松地发出警报。是否有可能在ActionScript中获得这个或类似的警报?ActionScript中的JavaScript警报

我有以下测试类在行动脚本。 Trace与java脚本中的console.log()相同。是否可以在操作脚本中显示消息?

package { 
    import flash.display.MovieClip; 
    public class ooas3 extends MovieClip{ 
     public var color:String = "red"; 
     public var num:Number = 100; 
     public function ooas3() { 
      theMovie_DoFSCommand(color,"ooas3 num is "+num); 
     } 


     function theMovie_DoFSCommand(color, args) { 
       if (command == "red") { 
       trace(command + " - " + args); 
     // Can above line is replaced by Alert similar to java Script Alert ?   
       } 
     }  
    } 
} 

由于按照菲利普的adivice我测试下面的类上actionscript docs:

package { 
     import flash.text.TextField; 
     import flash.display.MovieClip; 
     import flash.external.ExternalInterface; 

     public class extint_test extends MovieClip { 
     public function extint_test() { 
      var isAvailable:Boolean = ExternalInterface.available; 
      var availTxt:TextField = new TextField(); 
      availTxt.text = isAvailable.toString(); 
      addChild(availTxt); 
     } 
     } 
    } 

上面的代码提示“测试”类似的JavaScript。这是一个显示消息的Flash窗口。但如何在我的类中集成类似的代码。即如何使用此Flash警报窗口来修改trace ("something")

+1

是看到这一点:http://code.google.com/p/flash-console/| - | http://labs.findsubstance.com/2008/02/26/firebugs-console-log-flash-debugging-made-easy/ http://code.google.com/p/flash-tracer/ | - | https://addons.mozilla.org/fr/firefox/addon/flashtracer/ – mgraph 2012-03-19 14:07:01

+0

+1。谢谢mgraph – 2012-03-20 05:31:18

回答

3

警报可以在Flash环境中2种方式进行:

最好的办法是使用ExternalInterface。它调用JavaScript警报功能并相应地显示内容。例如,

import flash.external.ExternalInterface; 

ExternalInterface.call("alert", "Hello ExternalInterface"); 

在html中加载swf时应调用警报窗口。


2.第二种方法是编写您自己的自定义的Flash组件/类,它显示一些带有文本框的movieclip。您需要编写函数以处理其按钮点击的可见性(“OK”)

类似alert.show的内容在flash cs3及更高版本中不可行,因为组件mx.controls.Alert仅在Flash mx2004中可用并且flex环境。

+0

可否请你用一点代码解释一下? – 2012-03-19 14:53:08

+0

该帖子已被编辑以显示javascript警报的代码 – 2012-03-19 16:57:26

3

可以使用ExternalInterface.call()方法...看看here

f.e:

ExternalInterface.call("alert", "hallo"); 
+0

请看看我上面的更新。 – 2012-03-19 12:24:55

0

尝试添加以下代码行。 alert.show("alerts")方法

+0

它给编译器错误“访问未定义的属性警报” – 2012-03-19 12:17:46

+0

可能你必须给导入stmts ..“import mx.controls.Alert;” – sush 2012-03-19 12:27:19

+0

对不起,我没有一个闪存工具来检查错误.. – sush 2012-03-19 12:28:01