2
我有一個OpenLaszlo/AS3應用程序(olapp.lzx)和一個Flex應用程序(flexapp.swc)。 我想包括在olapp.lzx flexapp.swc如下:從AS3內部實例化Flex應用程序/ OpenLaszlo
olapp.lzx (AS3):
===============
...
var flexapp:Sprite = new FlexApp();
flexapp.doSomething();
...
的flexapp.swc從該MXML編譯:
flexapp.mxml:
============
<?xml version="1.0"?>
<!-- intro/FlexApp.mxml -->
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<mx:ComboBox>
<mx:dataProvider>
<s:ArrayList>
<fx:String>AK</fx:String>
<fx:String>AL</fx:String>
<!-- Add all other states. -->
</s:ArrayList>
</mx:dataProvider>
</mx:ComboBox>
</mx:Application>
當我編譯flexapp.mxml爲SWF,它運行很好,但從AS3 實例化失敗(TypeError:Error#2007)。我研究了mxml-> as3集成不是通常的方式,但是對於這種特殊情況我需要。我不得不承認,我還不太熟悉Flex,只有OpenLaszlo。 flexapp.mxml中應該改變什麼?謝謝!
SWC是一個ActionScript庫;不是可運行的應用程序....我從來沒有聽說過任何人試圖將應用程序標籤添加到SWC;但我想這應該是技術上可能的。我懷疑 - 但不確定 - 在創建基於允許應用程序真正運行的應用程序標記的SWF時,MXMLC編譯器會發揮一些神奇功效。創建SWC時,這些步驟可能不存在。如果我是你,我會考慮從你的Flex代碼創建一個SWF,然後在你的OpenLaszlo應用程序的運行時加載它。 – JeffryHouser 2012-04-23 15:09:03
由於某些原因,我無法在OpenLaszlo中包含swf文件,但會在另一個場合嘗試。但是我能夠包含一個由純粹的.as代碼創建的swc,除了擴展Sprite並在其中繪製一些圓之外別無其他。當我從UIComponent而不是Sprite繼承時,它不再顯示任何圖形,雖然也沒有錯誤消息。難道Flex組件一般不能在不使用mxml的情況下完成,因此不包含在OpenLaszlo中? – 2012-04-23 17:19:51
OpenLaszlo部署到許多平臺,Flash Player只是其中之一,是否正確?您應該可以使用加載器對象http://livedocs.adobe.com/flex/3/html/help.html?content=Working_with_MovieClips_7.html在Flash Player的運行時加載SWF。不過,我不知道OpenLaszlo如何適合OpenLaszlo。你的Flex SWC不工作的原因很可能是因爲Flex Framework沒有被初始化[我相信我在我原來的評論中提到過] – JeffryHouser 2012-04-23 18:46:17