如果將swf文件嵌入到html中,則可以通過使用JavaScript通過ExternalInterface調用ActionScript方法。 現在我想在瀏覽器外使用swf文件,但仍然可以訪問它的方法,但是現在我想用Python來調用ActionScript。可能嗎? 互聯網上關於它的信息很少。 也許我可以使用AMF(pyAmf),我可以嗎?從Python調用ActionScript。那可能嗎?
在此先感謝。
如果將swf文件嵌入到html中,則可以通過使用JavaScript通過ExternalInterface調用ActionScript方法。 現在我想在瀏覽器外使用swf文件,但仍然可以訪問它的方法,但是現在我想用Python來調用ActionScript。可能嗎? 互聯網上關於它的信息很少。 也許我可以使用AMF(pyAmf),我可以嗎?從Python調用ActionScript。那可能嗎?
在此先感謝。
如果您想在瀏覽器外以這種方式使用swf,請調查AIR或localconnection。
[編輯]您可以使用Python來偵聽ExternalInterface事件。 osflash.org有東西,你可以看看,雖然有點過時:
或一些示例的Python:
def ExternalCall(self,evt):
print "ExternalCall", evt.request
ret = "<object><property><string>Sample data</string></property></object>"
self.movie.SetReturnValue(ret)
swf文件可以連接聽與Socket,像個服務器。 ByteArray.readObject可以從消息字節讀取AMF格式的對象,因此您可以在對象中編碼方法名稱和參數。
如果我有權訪問應用程序的源代碼,那麼這可能是一個解決方案。但我只有該應用程序的發佈版本。所以看來,我唯一的選擇是通過ExternalIntrface訪問它。但是我失去了如何在瀏覽器之外做到這一點。 – Maxim 2011-04-12 13:39:07
你應該在你的問題中提及你的具體情況。你問Python是否可以與AS3通信,但你的問題比這個更具體; Python可以使用已經建立的ExternalInterface回調函數嗎? – jhocking 2011-04-12 14:22:45
是的,對不起。所以,你的評論最準確地描述了我需要達到的目標。 – Maxim 2011-04-12 17:55:38
你能詳細解釋一下嗎?我對AcrionScript/Flash/AIR等是完全陌生的。我需要的是圍繞現有的Flash應用程序(swf文件)構建某種包裝。該應用程序通過ExternalInterface公開了一些API。我需要能夠在瀏覽器之外訪問該API。 – Maxim 2011-04-12 13:48:10
@Maxim更新了我的文章:) – Zophiel 2011-04-13 08:23:05