[英]Can't call Flash (Swf) method from Javascript within QWebView
[英]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]");
我不確定這堂課是如何工作的? 這只是我可以從該站點上得到的點點滴滴,但我不太了解它是如何工作的(但希望最終會實現)。 這是網站: 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.