2010-02-27 49 views
2

我是Adobe AIR/Flex中的新手。將我的Flex應用程序轉換爲Adobe Air。在空中運行PHP

我開發了一個簡單的Flex Web應用程序。通過2 Php,可以連接到數據庫並返回查詢的XML結果。我將PHP和Flex文件上傳到我的互聯網服務器和應用程序。工作正常。

我的問題是:

我怎麼能做出同樣的應用程序。在Adobe AIR中工作?換句話說,我製作了一個新的AIR項目,並複製/粘貼Flex代碼。當我運行該項目時,它不起作用,並說出如下內容:

[RPC Fault faultString =「錯誤#2070:安全沙箱衝突:調用者無法訪問所屬的Stage。」 faultCode =「Client.CouldNotDecode」faultDetail =「null」] at mx.rpc.http :: HTTPService/http://www.adobe.com/2006/flex/mx/internal::processResult()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ http \ HTTPService.as :851] at mx.rpc :: AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ AbstractInvoker.as:188] at mx.rpc :: Responder/result( )[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ rpc \ src \ mx \ rpc \ Responder.as:43] at mx.rpc :: AsyncRequest/acknowledge()[C:\ autobuild \ 3.2.0在C#中,你可以使用下面的代碼來創建一個完整的Http:\ frameworks \ projects \ rpc \ src \ mx \ rpc \ AsyncRequest.as:74] DirectHTTPMessageResponder/completeHandler()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ rpc \ src \ mx \ messaging \ DirectHTTPChannel.as:403] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/d ispatchEvent() 在flash.net::URLLoader/onComplete()

所以我認爲,在我的AIR應用程序。我不能寫HTTP服務。或者,也許我不能使用連接到數據庫的PHP文件,進行查詢,然後返回一個XML。 如何轉換Flex應用程序。在AIR應用程序中。我必須使用SQLConnect和那些東西嗎?不能使用我的php文件,這很好用嗎?

謝謝。

我的問候。

艾倫

回答

0

您可以編寫連接到你的PHP AIR應用程序,我使用的ColdFusion和Java這樣不完全知道還會有什麼差異,但應該是沒有在服務器端。

AIR應用程序將需要訪問services-config.xml或其中包含的三個文件,或使用它們進行編譯。對於我的AIR應用程序,似乎servies-config.xml文件中的「includes」不起作用,我不得不將這三個文件的內容複製到主文件中。

在編譯行,你需要這樣的: -services 「C:\ BlazeDS的\ tomcat的\的webapps \聊天\ WEB-INF \彎曲\ services-config.xml中」 (對不起,我開發在Windows機器),但是您將需要完整路徑到您的實際services-config.xml文件。該行在我的「區域設置」選項的「其他編譯器參數」中。

這也需要您使用服務器端選項創建項目。

您可能還希望將代碼移到單獨的項目中,然後讓AIR和Web應用程序使用該代碼使用第三個項目。然後代碼中的一個更改會影響兩個版本,當然這意味着所有的東西都需要重新編譯。

PS。我發現Adobe AIR Programming Unleashed是一本關於這些信息的好書。

相關問題