2011-04-12 32 views
2

如果將swf文件嵌入到html中,則可以通過使用JavaScript通過ExternalInterface調用ActionScript方法。 現在我想在瀏覽器外使用swf文件,但仍然可以訪問它的方法,但是現在我想用Python來調用ActionScript。可能嗎? 互聯網上關於它的信息很少。 也許我可以使用AMF(pyAmf),我可以嗎?從Python調用ActionScript。那可能嗎?

在此先感謝。

回答

1

如果您想在瀏覽器外以這種方式使用swf,請調查AIR或localconnection。

[編輯]您可以使用Python來偵聽ExternalInterface事件。 osflash.org有東西,你可以看看,雖然有點過時:

http://osflash.org/ext_howto

或一些示例的Python:

def ExternalCall(self,evt): 
    print "ExternalCall", evt.request 
    ret = "<object><property><string>Sample data</string></property></object>" 
    self.movie.SetReturnValue(ret) 
+0

你能詳細解釋一下嗎?我對AcrionScript/Flash/AIR等是完全陌生的。我需要的是圍繞現有的Flash應用程序(swf文件)構建某種包裝。該應用程序通過ExternalInterface公開了一些API。我需要能夠在瀏覽器之外訪問該API。 – Maxim 2011-04-12 13:48:10

+0

@Maxim更新了我的文章:) – Zophiel 2011-04-13 08:23:05

0

swf文件可以連接聽與Socket,像個服務器。 ByteArray.readObject可以從消息字節讀取AMF格式的對象,因此您可以在對象中編碼方法名稱和參數。

+0

如果我有權訪問應用程序的源代碼,那麼這可能是一個解決方案。但我只有該應用程序的發佈版本。所以看來,我唯一的選擇是通過ExternalIntrface訪問它。但是我失去了如何在瀏覽器之外做到這一點。 – Maxim 2011-04-12 13:39:07

+0

你應該在你的問題中提及你的具體情況。你問Python是否可以與AS3通信,但你的問題比這個更具體; Python可以使用已經建立的ExternalInterface回調函數嗎? – jhocking 2011-04-12 14:22:45

+0

是的,對不起。所以,你的評論最準確地描述了我需要達到的目標。 – Maxim 2011-04-12 17:55:38

相關問題