2017-05-11 15 views
0

無論如何訪問SWF閃存文件內的動作腳本變量嗎?我可以爲Javascript做這件事,瀏覽器如Firefox和Chrome讓我可以從開發者模式訪問變量內容,但是我想在運行時爲Flash文件做這樣的事情。訪問SWF閃存文件的內部變量

回答

3

你不能直接訪問變量,但你可以在swf中調用一個函數來返回一些值給Javascript。

的Javascript:

// you might need to make sure the swf already exists. The id is the id of your swf object in HTML 
var mySWF = document.getElementById("mySWF"); 
var myResult = mySWF.getScore(); 

AS3:

if(ExternalInterface.available) 
{ 
    ExternalInterface.addCallback("getScore", onScoreRequested); 
} 

private function onScoreRequested():String 
{ 
    return _myLocalVariableInAS3; 
} 
0

使用JavaScript這是可能的,因爲代碼被渲染(處理)由瀏覽器本身,所以你可以在簡單地改變變量運行時間並查看即時結果(通過頁面刷新等)。

SWF編譯的代碼就像.exe.apk.dmg,所以你不能只是改變瓦爾而不需要重新編譯。

如果需要進行簡單的測試/學習,可以嘗試JPEXS Flash Decompiler來調整代碼&變量。
在重新編譯(導出)爲新的SWF文件之前保存代碼更改。照常在瀏覽器中測試。