簡體   English   中英

使用Javascript來調用Flash(.swf)文件中的方法嗎?

[英]Use Javascript to call method within a flash (.swf) file?

我有一個Flash文件,其中包含一個程序包“ game”,該程序包具有一個類“ Scores”和一個方法setValue()。 我想寫一些Javascript行,讓我可以調用該方法。 有人將我引向了本教程,但我仍然有些困惑。

Javascript: alert("start"); var so; so = document.embeds[0]; 
so.addParam("allowScriptAccess","always");  import flash.external.ExternalInterface; 
ExternalInterface.call("setValue[2600]");
  1. 顯示警報以告訴我它確實已經開始執行
  2. 將嵌入式Flash文件保存到變量中並設置訪問權限
  3. 導入該類
  4. 調用方法

我不確定這堂課是如何工作的? 這只是我可以從該站點上得到的點點滴滴,但我不太了解它是如何工作的(但希望最終會實現)。 這是網站: http : //bytes.com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascript 當我執行帶有導入的代碼時,什么也沒發生,但是當我沒有該語句時,警報會出現嗎?

如果有人能詳細說明如何調用該方法,我將非常感激! :)

您所擁有的代碼混合了JavaScript和ActionScript。

在ActionScript中,您需要注冊setValue函數以供外部使用,因此可以從JavaScript調用它。 它的代碼可能看起來像這樣:

package game
{
    import flash.display.Sprite;
    import flash.external.ExternalInterface;
    import flash.text.TextField;

    public class Scores extends Sprite
    {
        public var txtScore:TextField;      // A textfield in the sprite

        public function Scores()
        {
            // Register the function for external use.
            ExternalInterface.addCallback("setValue", setValue);
        }

        private function setValue(value:Number):void
        {
            txtScore.text = String(value);
        }

    }

}

JavaScript可能如下所示:

var so = document.embeds[0];
so.setValue(2600);

Adobe在此處提供了帶有冗長但有用的示例的文檔。 它們展示了ActionScript和JavaScript,以及它們如何以兩種方式進行交互。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM