なぜMXん:状態はトラブルは、コンポーネントの実装に解決されてきましたか?
-
21-08-2019 - |
質問
毎日のようにして、私はエラーを取得します。状態コンポーネントの実装に解決することができませんでした。
:私が手にエラーがMXはと言います。 状態:何とかは、MXを解決するために、コンパイラの機能をオフに投げること -私は、この問題が拡張コンポーネントによって引き起こされると、次のURLで、読んで。このような場合でなければなりませんなぜ私は表示されませんが、私は自分自身のいずれかの答えを持っていません。また、私は必ずしも私の拡張コンポーネントのすべてと、このアプローチの仕事をすることはできません。
http://life.neophi.com/danielr/2007/01 /could_not_resolve_to_a_compone.htmlする
私が作ってみた問題を回避するには、任意の名前空間を使用しないことです。 だから、私のコードは、このようになります。
<states>...</states>
ではなく、
<mx:states>...</mx:states>
(少なくとも、私には)、この見知らぬ人を作るタグの子供がいるという事実である - - この問題は発生しません。 MX:状態は解消することはできませんが、その子のmx:州立缶。およびMX:てSetProperty - MXの子:状態は - も解決されます。
。誰もがこれを説明し、かつ/または、私が作ってみたものよりも、問題へのよりよい解決策を提供することはできますか?
ちなみに、私はMXと同じ問題を参照してください。トランジションを
解決
、あなたはおそらく、のMX の以外の名前空間でそれを持っています。あなたは、名前空間を除去することにより、正しい軌道に乗っているが、あなたはそれを行う必要はありません。次の例を考えてみましょう。
<example:MyComponent xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:example="com.example.*">
</example:MyComponent>
このコードでは、我々はcom.exampleパッケージにMyComponentの名前のカスタムコンポーネントを持っています。さて、どのように我々は、カスタム状態を追加するには?それは簡単です!
<example:MyComponent xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:example="com.example.*">
<example:states>
<mx:State name="CustomState">
</mx:State>
</example:states>
</example:MyComponent>
ボタン上のコンポーネントののプロパティ、のようなの状態の、の遷移の、あるいはのラベルの子要素として作成することができます。これらのプロパティは、コンポーネントのインスタンスと同じ名前空間を使用する必要があります。プロパティが継承チェーンのどこから来るのか、それは問題ではありません。 com.example.MyComponentはmx.containers.Canvasを拡張した場合でも、状態プロパティはMyComponentのが定義されているXML名前空間を使用します。
プロパティののプレフィックス単に継承されます。のMXがあるため状態の要するに、のMXとしての状態のプロパティではないと思いますコンポーネントから。それはクラス(ないプロパティ)だと、そのクラスは、MX名前空間で定義されているので、我々は実際の状態そのものを定義するとき、
の:。しかし、我々は、のMXを使用する必要がありますの説明ではさらに一歩を移動するには、あなたが変更することができます。ののhttp:// WWW。 のMX の以外のものにするためにadobe.com/2006/mxmlする の名前空間ます。
<zzz:VBox xmlns:zzz="http://www.adobe.com/2006/mxml">
<zzz:states>
</zzz:states>
</zzz:VBox>
この例では、のZZZ から MX の変更します。さて、の状態のプロパティの接頭辞する必要がありZZZ:代わりにのMXののの
。他のヒント
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%"
height="100%"
backgroundColor="#f7f7f7"
xmlns:common="com.americanexpress.voice.view.component.common.*">
<mx:states name="edit">
これはなぜ失敗するのか?また、私は定義された複数の名前空間を持っているとき、これは失敗したことを発見しました。 <mx:
が問題に対処し削除します。