2011-10-25 64 views
4

想知道是否有方法從SWF文件服務器端讀取類靜態常量。我找到了getimagesize()之類的東西,但它沒有包含所有這些詳細信息。我想這意味着我需要一個部分反編譯器。從PHP中的SWF讀取ActionScript 3常量

具體來說,我有我的Flex項目這個類:

package 
{ 
    public class AppVersion 
    { 
     public static const SVN_VERSION:String = "172"; 
     public function AppVersion() 
     { 
     } 
    } 
} 

SVN_VERSION使用上構建一個ant腳本更新。使用ActionScript代碼向用戶顯示AppVersion.SVN_VERSION,因此它應該在SWF中的某處可用。

我希望能夠從PHP讀取該版本,以便知道它處理的是哪個版本的SWF。這個相同的SWF被用在大約20個各種版本的項目中,所以PHP會根據不同的情況做一些不同的事情。 PHP在Mac OSX或Linux上運行,如果這有所幫助的話。

+0

我在做什麼無關,發現[SWFExplorer(http://www.bytearray.org/?p=175),它做的第一件解碼SWF的步驟。閱讀Adobe的SWF和ABCFile文檔並修改SWFExplorer我能夠看到信息!但目前還沒有PHP庫,我發現它會這樣做,所以我必須將SWFExplorer自己移植到PHP中......如果我能夠做到這一點,我將通過鏈接正確回答。 :) – hood

+0

其實我看不到實際的信息。我看到它的常量SVN_VERSION在主MXML文件中使用。移動對AS文件的引用會從ABC文件中刪除實際的字符串,並且在任何情況下都不會顯示「172」字符串。看起來需要更多的工作來獲得這些常量! – hood

回答

1

你可以使用下面的類值發送到PHP:

  1. URLRequest
  2. URLLoader
  3. URLVariables

將基本上僅僅是這樣的:

var variables:URLVariables = new URLVariables(); 
variables.svnVersion = SVN_VERSION; 

var request:URLRequest = new URLRequest("http://your_domain.com/your_php_file.php"); 
request.method = URLRequestMethod.POST; 
request.data = variables; 

var loader:URLLoader = new URLLoader(); 
loader.load(request); 

,從這裏您可以通過在PHP訪問值:

$_POST["svnVersion"]; 
+0

謝謝,但我希望在向客戶端發送任何內容之前獲得SWF的SVN版本。並且爲此目的對AS代碼進行最小/不變的修改。 – hood

相關問題