沒有真正改變;蘋果剛剛解除禁令。禁止不僅僅是在閃存創建的應用程序上,它是在任何創建任何中間語言或使用虛擬機等工具上。PFI的作用:它實際上使用LLVM編譯器靜態編譯actionscript 3 BYTECODE(而不是AS3源)到本地ARM程序集。所以,基本上,當您部署IPA時,與將SWF發佈到EXE(如發佈設置中)相同,因爲SWF應用程序和Flash虛擬機都捆綁在一起,除了不是exe其中的代碼是x86 ASM,並且在虛擬機上執行AS3字節碼,這是ARM。 PFI及其所有類都簡單地合併到ADT工具中。 PFI包含一個LLVM dll,可通過各種LLVM java類訪問該類,這些類被添加到ASC或actionscript編譯器的內部adobe版本中。但是,這些LLVM類和其他關聯類不是開源的,即使ASC是開源的,因爲它是根據MPL或mozilla公共許可證授權的,因此它允許Adobe使用開放源代碼專有封閉源代碼應用程序,無需分享您的更改
爲了證明我剛剛告訴你的所有內容,只需下載新的flex SDK,包含合併了PFI的ADT,您就可以找到LLVM dll等。此外,您可以反編譯ADT jar並查看所有的LLVM類。 LLVM類(我相信)通過GlobalOptimizer類來攔截ASC字節碼,或者至少它在當天返回......他們可能已經改變了這一點。唯一改變的就是Adobe明顯優化了PFI(現在合併到ADT中)。這裏更多的信息:
http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html
http://www.leebrimelow.com/?p=2754
更新
這裏是一個Adobe官方文章,確認我已經告訴你的事:
http://www.adobe.com/devnet/logged_in/abansod_iphone.html。我還應該澄清一下,我真的過分簡化了幕後過程,在我看來,我認爲是錯誤的。我想不知道PFI實際上是將AS3字節碼和虛擬機合併成一個不使用JIT編譯的無縫可執行文件,因此在技術上不是虛擬機?在這一點上不確定,但上面的文章似乎暗示了這一點:
「當你爲iOS構建你的應用程序時,你的最終二進制文件中沒有解釋的代碼,也沒有運行時,你的應用程序是真正的本地iOS應用程序「。
+1,很好的答案。 – TheDarkIn1978
@Digital Architect:我想將動作swf文件加載到我的ios應用程序的uiwebview中。我知道我必須使用adob flash,但請您給我一些指導性鏈接或步驟來執行此任務。請。 – iShwar