2012-03-19 54 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