ホーム >> 左脳Script >> Adobe AIR >> Flex >> Flex カスタムコンポーネントを AS3 で作るには

Flex カスタムコンポーネントを AS3 で作るには


Flex において、MXMLが簡単で便利でホットというのは理解できました。
しかし、チュートリアルの方法では、全てのコードを main.mxml に書かなくてはならなくなってしまいます。Action Script のみで開発していた頃は、単純にクラス毎にファイルが分かれていて、コードの管理もしやすかったのですが・・・

むしろ、Action Script 3 で作ったクラスは使えないのでしょうか?それはそれで余りに生産性が勿体無い。(←微妙な日本語)


新規クラス追加

newclass.PNG Flex では、FlashDevelop で普通に NewClass で追加しようとすると、Flash 開発時とは違うダイアログで、クラス追加をする事になります。FlashDevelopのバージョンが上がった事(3.0.0→3.0.6RTMに更新した)による変更でしたorz。「Flex と Action Script 3」で、「AIR開発 と Flash開発」で、新規クラス追加ダイアログに違いはありません。

よく読めば、パッケージの指定や、派生元のスーパークラスは何にするのか、等、理解し難い指定は ありませんね。

ここで、Flex の U/I コンポーネントクラスを元に派生クラスを作るのは簡単なのです。
「.as」ではない、main.mxml にどう記述するのかが判りませんでした。


コンポーネント追加方法

色々検索した結果、判りやすい情報は本家の Adobe のサイトにありました。
http://www.adobe.com/support/documentation/jp/flex/
ここからの「Flex 3 開発ガイド >> ActionScript カスタムコンポーネント >> ActionScript のシンプルなビジュアルコンポーネント >> ActionScript コンポーネントについて」と辿ると、詳しく書いてあります。


  1. まず、as3 でクラスを作る。
    mx.core.UIComponent のサブクラスでないと、コンポーネントになれないので、UIComponent 又は、この派生クラスを extends指定する事。
  2. mx:WindowedApplication タグに、xmlns記述を追加。
    作ったas3クラスのパッケージ名を記述する。
    「package hoge.hongege」だった場合は「xmlns:ユニークなネームスペース="hoge.hongege.*"」
    package に指定がない場合、素直に「xmlns:ユニークなネームスペース="*"」で問題ない。
    ユニークなネームスペースは、アルファベット大文字小文字を区別しドットも使える。

具体的には、以下のようなコンポーネントクラスを作った場合、

package  
{
    import mx.containers.Panel;
    /**
     * ...
     * @author 
     */
    public class extendsPanel extends Panel
    {
        public function extendsPanel() 
        {
            title = "カスタムコンポーネント";
        }
    }
}
main.mxml は、このようになります。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:myCustom="*">
    <MyCustom:extendsPanel width="100%" height="100%">
    </MyCustom:extendsPanel>
</mx:WindowedApplication>
ここの、「xmlns:myCustom="*"」が、カスタムコンポーネントを追加する記述です。この記述により、後の「MyCustom:extendsPanel」と言う名前でカスタムコンポーネントのタグを使用できるようになります。
このカスタムコンポーネントは Panel を元に作られていますので、 mx:Panel と同じオプションを使用することが出来ます。当然、このタグの内側にmxのコンポーネントタグを記述することも出来ます。


その他

この他、検索中に見つけたページ。
http://d.hatena.ne.jp/aqvi/20091101/1257056329
mxml部分をas3で書き出している。中身がどうなっているのかなんとなく理解。




トラックバック(0)

トラックバックURL: http://n-yagi.0r2.net/sanoupulurun/mt-tb.cgi/237

コメントする

ホーム >> 左脳Script >> Adobe AIR >> Flex >> Flex カスタムコンポーネントを AS3 で作るには

アーカイブ

このブログ記事について

このページは、n-yagiが2009年11月23日 21:07に書いたブログ記事です。

ひとつ前のブログ記事は「今更 Flex 始めてみる?!」です。

次のブログ記事は「HTMLLoader を使った Web ページのサムネイル表示」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。