私はいくつかのコンポーネントを持つビュースタックを持っています。 これらのコンポーネントは、他のコンポーネントからのパラメータで関数を実行する必要があります。 したがって、他のコンポーネントで直接ロードできない場合があります。コンポーネントを含むViewstack;コンポーネントをロードするのを待ちます
AS3経由でコンポーネントをロードする方法はありますか?
ありがとうございます!
私はいくつかのコンポーネントを持つビュースタックを持っています。 これらのコンポーネントは、他のコンポーネントからのパラメータで関数を実行する必要があります。 したがって、他のコンポーネントで直接ロードできない場合があります。コンポーネントを含むViewstack;コンポーネントをロードするのを待ちます
AS3経由でコンポーネントをロードする方法はありますか?
ありがとうございます!
は、実行時に子コンポーネントを追加する方法の詳細をeterps。すべてが起動 でインスタンス化されている - - コンポーネントが
creationPolicy=all
を使用するインスタンス化されるとき、エンジンが決定
creationPolicy=auto
:あなたはMXMLで、あなたの子コンポーネントを指定した場合は、作成するためのいくつかのオプションを持っていますcreationPolicy=auto
またはnone
を使用しますが、必要に応じて手動でインスタンス化します。参照:creating deferred componentsauto
はあなたのために働いていないので、私はall
を試してみました。そのインスタンス化があまりにも早すぎる場合にのみ、遅延コンポーネントを調べます。
任意のMXMLコンポーネントは、AS3経由でインスタンス化できます。 creationCompleteイベントを使用すると、コンポーネントを作成して表示リストに追加するメソッドを呼び出すことができます。以下の例を参照してください。ボタンとHGroupがAS3に作成され、ボタンがHGroupの子になり、Hgroupがパネルの子になります。上記
<s:Panel creationComplete="createButtonComponent(event)">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Button;
import mx.events.FlexEvent;
import spark.components.HGroup;
protected function buttonClickHandler(event:MouseEvent):void
{
// Do something
}
protected function createButtonComponent(event:FlexEvent):void
{
var group:HGroup = new HGroup();
group.percentHeight = 20;
group.percentWidth = 100;
var myButton:Button = new Button();
myButton.label = 'My Button';
myButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
group.addElement(myButton);
this.addElement(group);
}
]]>
</fx:Script>
</s:Panel>
このコードは、次のMXMLのようになります。
<s:Panel creationComplete="createButtonComponent(event)">
<s:HGroup id="group" height="20%" width="100%">
<mx:Button id="myButton" label="My Button" click="buttonClickHandler" />
</s:HGroup>
</s:Panel>