2011-02-03 7 views
14

私がしたいこと:いくつかの子を持つMXMLコンポーネントを作成し、元のセットを失うことなく、より多くの子を持つ新しいコンポーネントを作成するためにMXMLを通じて拡張します。すなわち MXMLを使用してMXMLカスタムコンポーネントを拡張する

では

<?xml version="1.0" encoding="utf-8"?> 
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> 

    <s:Button id="b1" label="button1"/> 
</s:BorderContainer> 

bc.mxmlコンポーネントを作成し、別の成分mc.mxml

<?xml version="1.0" encoding="utf-8"?> 
<borderContainerX:bc xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:borderContainerX="borderContainerX.*"> 

    <s:Button id="b2" y="100" label="button2"/> 
</borderContainerX:bc> 

にそれを拡張し、2つのボタンで構成要素を得ます。

私はこれを達成する(1)これが可能のいずれかでない方法や回避策に関するさまざまなスレッド(23)を見てきたし、何かは、Flex 4の登場により変更された場合や、私たちがしている場合は疑問に思ってきましたこれらの回避策でまだまだ立ち往生していますが、スレッド3の最後の返信は、Flex 4ですべてのことをヒントしているようです。

のFlex 4では
+0

スクリプト? 2番目のコンポーネントのcreateChildren()メソッドで2番目のボタンを作成しますか? – JeffryHouser

+3

純粋なmxmlがまだ動作しないことに驚いています。正直、mxmlを使ってコンポーネントをセットアップするのはいいことですが、これは不可能なので奇妙に思えます。 –

答えて

11

、あなたはこのコメントで提示されるようオーバーライドの可能な実装の

一つの親クラスであなたのすでに定義された子供たちを維持するために、あなたの「mxmlContent」プロパティのセッターをオーバーライドする必要がありますブログエントリ

クイック先端(フレックス4):さようならテンプレート - MXMLとアクションのミックスを使用しないのはなぜハローmxmlContent

http://www.websector.de/blog/2009/10/02/quick-tip-flex-4-goodbye-templates-hello-mxmlcontent/

+0

また、Flex 4では、このタイプのタスクを伴って定義された複数のコンテンツ領域でスキンを使用する方がはるかにエレガントです。*複数のコンテンツ領域を持つFlex 4コンテナの構築* http://saturnboy.com/2010/07/multiple -content-area-containers/ – JabbyPanda

+0

これを試しました(mxmlContentの設定を含みますが、それは私のためには機能しません)。 – Dan

関連する問題