N2-Works
WEB企画・制作/システム開発 大阪拠点

FlashDevelopでFlashCS4のflライブラリUIコンポーネントを使用する方法

FlashDevelopでComboBoxを使用したかったのですが、mxmlのクラスしかありません。

画面もコードで定義したかったので代替手段はないか探してみると、flライブラリを使用したサンプルが何件かありました。

試してみるとFlashDevelopにはflライブラリが存在しないためimportエラーが発生します。

オーサリングツールにflライブラリのflaファイルがあるので、それをswcファイルに変換すればライブラリとして使用できそうです。

私が所有しているオーサリングツールはFlash CS4です。

CS4の場合、flライブラリのflaファイルは以下のパスにありました。

(インストールフォルダ)/Adobe/Adobe Flash CS4/Common/Configuration/Components/User Interface.fla

パブリッシュ設定でswc書き出しにチェックを入れるとswcファイルも一緒に作成されます。

作成したswcファイルをFlashDevelopのプロジェクトに加えて(srcフォルダとか)コンテキストメニューから「ライブラリに追加」を選択すれば有効となります。

プロジェクト->プロジェクト設定->コンパイラー設定->SWC librariesにswcファイルのパスを加えるやり方もあります。

サンプルソース

package  
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.text.TextField;
  import flash.text.TextFieldAutoSize;
  import fl.controls.ComboBox;
  
  public class UiSample extends Sprite
  {
    private var mTf:TextField;
    
    public function UiSample() 
    {
      var combo:ComboBox = new ComboBox();
      combo.x = 10;
      combo.y = 10;
      combo.addItem({"label": "選択肢1", "data": 1});
      combo.addItem({"label": "選択肢2", "data": 2});
      combo.addItem({"label": "選択肢3", "data": 3});
      combo.addItem({"label": "選択肢4", "data": 4});
      combo.addItem({"label": "選択肢5", "data": 5});
      combo.addEventListener(Event.CHANGE, ListenerComboSelect);
      addChild(combo);
      
      mTf = new TextField();
      mTf.x = 10;
      mTf.y = 50;
      mTf.autoSize = TextFieldAutoSize.LEFT;
      mTf.text = "選択結果が表示されます";
      addChild(mTf);
    }
    
    private function ListenerComboSelect(evt:Event):void
    {
      var combo:ComboBox = evt.currentTarget as ComboBox;
      var text:String = combo.selectedLabel as String;
      mTf.text = text+"が選択されました";
    }
  }
}

サンプルです。(要FlashPlayer)

[Flash]2011年07月15日 07時10分08秒

※1000文字以内で入力してください

captcha
TOP