2011-10-12 103 views
1

我有一組〜5 ActionScript 3類,目前在flex 4應用程序中使用。雖然他們的輸出用於在我的Flex應用程序中顯示圖形等,但這些類本身沒有可視組件 - 它們僅用於執行復雜的數學計算(我最初在AS3中實現它們以便在需要計算時避免不斷的服務器調用Flex應用程序)。在Linux服務器上執行Actionscript

但是,我現在想要在我的linux服務器上製作相同的數學計算引擎,以便可以在PHP中完成計算。有什麼辦法可以訪問服務器上這些類的邏輯嗎?我真的很想避免在PHP中重新實現複雜的邏輯。

非常感謝您的幫助!

+0

如果要執行你在服務器上的邏輯,你將不得不用服務器可以使用的語言編寫。 – afuzzyllama

回答

0

AS3類中有多少行代碼,需要處理哪種類型的負載?

如果您正在構建超過一次性使用的任何內容,那麼最簡單的路線可能是將您的ActionScript移植到JavaScript。沒有我知道的任何自動轉換器,但JavaScript和AS3非常相似,除非您的五個類擁有數千行代碼,否則您應該能夠簡化它的工作。將它移植到JavaScript之後,通過Node.js直接通過您選擇的虛擬機運行,甚至在用戶的瀏覽器中運行都將變得簡單。

如果你只是需要這個劃傷和癢或有限的使用,你可能會逃脫直接在Tamarinredtamarin運行AS3。但據我所知,這些都不適合生產使用。

但是,如果您在高可用性,高流量的PHP應用程序中使用此功能,那麼從長遠來看,您只需將代碼移植到PHP中,就會感受到更少的痛苦。 AS3和PHP在語法上相似,您可能只需做一個直接的端口即可。

最後,你可以找到在此線程一些進一步的討論和鏈接:Is it possible to create a 'command line' swf?

+0

非常感謝您提供的所有信息。該代碼實際上是數千行。更糟的是,它會在AS3版本中不斷更新,我不想維護2個版本。該代碼使用相當簡單的計算指令 - 只是其中很多,所以我會看看我是否可以使它與Tamarin合作。 –

+0

我只是想發佈一個更新:我能夠讓redtamarin完美地用於此用途。我必須對代碼進行一些非常小的更改才能使它兼容redtamarin,但這些更改不會損害flex中的原始操作。所以我現在有一個完全可操作的代碼庫,可以在客戶端或服務器上運行 - 正是我想要的!非常感謝您指引我朝着正確的方向發展! –

+0

不錯!很高興你能把它整理出來。 –

0

您可以使用redtamarin

http://code.google.com/p/redtamarin/

從Linux服務器的角度來看,你將能夠運行 您的AS3源代碼作爲CGI(直接編譯爲AS3腳本或編譯爲ABC)

或者您也可以將AS3代碼捆綁到一個exe中,然後您將通過它調用PHP

或讓你的AS3腳本作爲可執行文件binfmt_misc

http://code.google.com/p/redtamarin/wiki/RunningShellScripts#Registering_an_extension_as_non-native_binaries_(Linux_only

在這裏我們使用redtamarin

  • 爲腳本,做我們SVN掛鉤的生產和開發服務器,在Linux服務器上自動完成任務
  • 作爲套接字服務器,http服務器和CGI
  • as executable to reuse as AS3 logic into our automated builds
  • etc.

看文檔中一點你會發現你有很多選擇 重用你的AS3代碼:標準輸入/輸出/標準錯誤,插座,管道,CGI等