OpenLaszlo/AS3 App(olapp.lzx)とFlex App(flexapp.swc)が1つあります。 私は次のようにolapp.lzxにflexapp.swcを含める:AS3/OpenLaszlo内からFlexアプリケーションをインスタンス化
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>
私はswfファイルにflexapp.mxmlをコンパイルすると、それが実行されますうまくいっても、AS3 からのインスタンス化は失敗します(TypeError:Error#2007)。私は、mxml-> as3の統合は通常の方法ではないことを研究しましたが、この特定のケースでは私は必要です。私はまだFlexに慣れていないことを認めなければなりません.OleLaszloだけです。 flexapp.mxmlで何を変更する必要がありますか?ありがとう!
SWCはActionScriptライブラリです。実行可能なアプリケーションではありません。私はSWCにアプリケーションタグを追加しようとしている人は誰も聞いたことがありません。私はそれが技術的に可能なはずだと思います。 MXMLCコンパイラは、アプリケーションを実際に実行できるようにするApplicationタグに基づいてSWFを作成するときに、いくつかの魔法を実行すると思いますが、わかりません。このような手順は、SWCの作成時には存在しない可能性があります。私があなただったら、FlexコードからSWFを作成し、実行時にOpenLaszloアプリケーションからロードします。 – JeffryHouser
何らかの理由でOpenLaszloにswfファイルを含めることができませんでしたが、別の機会に試してみます。しかし、純粋な.asコードから作成されたSwcをインクルードすることができました。これは、Spriteを拡張し、その中にいくつかの円を描きます。 Spriteの代わりにUIComponentを継承すると、もはやグラフィックは表示されませんが、エラーメッセージは表示されなくなります。 Flexコンポーネントは一般にmxmlなしでファイナライズすることはできないため、OpenLaszloには含まれていないのでしょうか? –
OpenLaszloは多くのプラットフォームに採用されています。 Flash Playerで実行時にSWFをロードするには、ローダーオブジェクトhttp://livedocs.adobe.com/flex/3/html/help.html?content=Working_with_MovieClips_7.htmlを使用する必要があります。私はそれがOpenLaszloにどのように適合しているのか分かりません。 Flexのフレームワークが初期化されていないために、Flex SWCが動作しない理由があります。[オリジナルのコメントで解決したと思います] – JeffryHouser