2008-12-05 48 views
1

是否可以在Flash(cs4)SWF文件中使用Flex 3組件/代碼?如何在Flash文件中使用FLEX 3組件?

我知道它可能在相反的方向。

+0

有人知道是否可以用Flex 4來完成? – msemelman 2010-11-18 02:40:02

+0

我經常這樣做 - 創建一個As3庫項目,轉到屬性編譯器設置(FB4),瀏覽到flashbuilde 4 \ .. sdks \ libs - 選擇flex.swc。使用命名空間mx_internal;我使用mx.collections.ArrayCollection相當有用所以它的有用 – MikeW 2012-03-06 06:25:17

回答

1

通過我的最小測試看起來您在構建「純粹AS3」項目時不能使用Flex組件。(我們可以開始稱它爲PAS3或類似「passé」或「pastry」):

我做了一個公認的有限測試,創建一個AS類作爲「文檔類」的測試項目,會實例化和addChild一個mx.controls.Button。我將hasseg提到的路徑中的整個mx包複製到項目源路徑中。

這是我發現:

  1. 通過去除一定Version.as文件使用mx_internal,我得到的Flash IDE編譯我的測試項目沒有任何警告。儘管如此,舞臺上沒有出現。
  2. 使用Flex Builder(以及flex編譯器,顯然)我也設法編譯了這個項目,沒有錯誤。我在代碼中加入了斷點,並觀察它在調試器中自行構建。這些組件完美實例化,但仍然沒有出現在舞臺上。這個swf也使瀏覽器無數次崩潰。
1

我自己並沒有在「純AS3」項目中使用Flex代碼,但我不明白爲什麼你不能這麼做。

你可以從那裏下載Flex SDK並獲得Flex組件,無論是作爲一個swc文件(下/frameworks/libs)和AS3源代碼(/frameworks/projects/framework/src下)。

0

一般來說,你需要使用MXML初始化Flex框架和使用Flex組件。從Adobe

邁克錢伯斯說:

沒有在一個AS項目僅使用Flex框架的支持。雖然這在理論上是可行的,但您必須手動引導Flex處理的很多應用程序初始化代碼(這些代碼相當複雜)。 - Source

要了解複雜程度,您可以告訴編譯器保留從MXML生成的中間AS3文件。打開AS3項目屬性並將-keep-generated-actionscript設置爲編譯器的參數。編譯你的項目,然後查看obj/generated文件夾。使用Flex 4,我得到了13個小文件,其中主文件擴展了spark.components.Application並覆蓋了一些方法。

所以這是可能的,但你可能不想這樣做。 Flex的目的是讓你的生活更輕鬆,而不是更難。