ちゃんと理解しているなら、はい、これは可能です。「コンポーネントを呼び出す」という用語は標準的ではありません。しかし、MXML ではなく ActionScript でコンポーネントを作成したいと考えています。MXML でできることはすべて、ActionScript でもできます。
あなたは正しい考えを持っています。そして、あなたはほとんどそこまで来ています。私が変更することがいくつかあります。まず、ActionScript でクラスをインポートします。概念的には、次のように MXML 名前空間を参照しません。
import com.myPackage.msns;
スクリプト ブロック内。
コンポーネントを作成するときは、それを指す変数を作成する必要があります。これは、MXML の id フィールドに対応します。の構文は、ns1:msns:component
おそらくコンパイラ エラーを引き起こします。ただし、次のようにコンポーネントを作成できます。
var msns :component = new component()
ここで、コンポーネント名を大文字にするのが通常の慣習であることを述べておきます。ただし、小文字の使用は構文的に間違っていません。
次に、既に行っているコンポーネントのプロパティを設定します。
msns.x = 5
msns.x = 5
そして最後に、これは欠落しているステップです。新しいコンポーネントをコンテナーに追加する必要があります。Spark コンテナを扱っている場合はaddElementを、MX コンテナを扱っている場合はaddChildを使用してそれを行うことができます。あなたが提供した例では、親コンテナがsparkアプリケーションであるため、addElementを使用します。
this.addElement(msns);
したがって、コード ブロックは次のように書き直されます。
protected function mmshakkoutab(event:MouseEvent):void{
var msns:component = new component();
msns.x = 5
msns.x = 5
this.addElement(msns);
}
読んでおくべきことの 1 つは、Flex コンポーネントの LifeCycleです。すべての Flex コンポーネントが通過します。そして特定のことは、特定の目的のために特定の順序で行われます。子を作成するには、createChildren() を拡張したほうがよい場合があります。特に、アプリケーション タグの初期設定の一部としてコンポーネントを作成する場合はそうです。