単純なアプリケーション

この節では、Flash コンポーネントと Flash オーサリングツールを使用して単純な ActionScript 3.0 アプリケーションを作成する手順について説明します。 タイムラインに ActionScript コードを含む FLA ファイルと、ライブラリにコンポーネントのみを含む FLA ファイルを持つ外部 ActionScript クラスファイルの両方の例が用意されています。 一般に、大規模なアプリケーションの開発は、クラスとアプリケーションの間でコードを共有できるように、また、アプリケーションの保守が簡単になるように、外部クラスファイルを使用して行います。 ActionScript 3.0 を使用したプログラミングについて詳しくは、『ActionScript 3.0 のプログラミング』を参照してください。

アプリケーションの設計

ActionScript コンポーネントアプリケーションの最初の例は標準的な "Hello World" アプリケーションなので、その設計は非常に簡単です。

  • このアプリケーションを "Greetings" と呼びます。

  • ここでは、TextArea を使用して挨拶 (最初は Hello World) を表示します。

  • テキストの色を変更できる ColorPicker を使用します。

  • テキストのサイズを小、大、または最大に設定できる 3 つの RadioButton を使用します。

  • ドロップダウンリストからさまざまな挨拶を選択できる ComboBox を使用します。

  • このアプリケーションでは、コンポーネントパネルのコンポーネントを使用し、ActionScript コードを使用してアプリケーションエレメントも作成します。

    この定義を適切に設定したら、アプリケーションの作成を開始できます。

Greetings アプリケーションの作成

次の手順では、Flash オーサリングツールを使用して FLA ファイルを作成し、コンポーネントをステージ上に配置し、ActionScript コードをタイムラインに追加して、Greetings アプリケーションを作成します。

FLA ファイルでの Greetings アプリケーションの作成:

  1. ファイル/新規を選択します。

  2. 新規ドキュメントダイアログボックスで「Flash ファイル(ActionScript 3.0)」を選択し、「OK」をクリックします。

    新しい Flash ウィンドウが開きます。

  3. ファイル/保存を選択し、Flash ファイルの名前を Greetings.fla と指定し、「保存」ボタンをクリックします。

  4. Flash のコンポーネントパネルで TextArea コンポーネントを選択し、ステージにドラッグします。

  5. プロパティウィンドウのステージで TextArea を選択し、インスタンス名として aTa と入力し、次の情報を入力します。

    • W 値(幅)に 230 と入力します。

    • H 値(高さ)に 44 と入力します。

    • X 値(水平位置)に 165 と入力します。

    • Y 値(垂直位置)に 57 と入力します。

    • 「パラメーター」タブで、テキストパラメーターとして Hello World! と入力します。

  6. ColorPicker コンポーネントをステージ上にドラッグし、TextArea の左側に配置して、インスタンス名 txtCp を指定します。 プロパティインスペクターに次の情報を入力します。

    • X 値として 96 と入力します。

    • Y 値として 72 と入力します。

  7. RadioButton コンポーネントを一度に 1 つずつステージにドラッグし、インスタンス名 smallRb largerRb および largestRb を指定します。プロパティインスペクターで、これらのコンポーネントに関する次の情報を入力します。

    • それぞれの W 値として 100 、H 値として 22 と入力します。

    • X 値として 155 と入力します。

    • smallRb の Y 値として 120 、largerRb に 148 、largestRb に 175 と入力します。

    • それぞれの groupName パラメーターに fontRbGrp と入力します。

    • 「パラメーター」タブで、それぞれのラベル Small Larger および Largest を入力します。

  8. ComboBox をステージまでドラッグし、インスタンス名 msgCb を指定します。プロパティインスペクターで、このコンポーネントに関する次の情報を入力します。

    • W 値として 130 と入力します。

    • X 値として 265 と入力します。

    • Y 値として 120 と入力します。

    • 「パラメーター」タブで、プロンプトパラメーターに Greetings と入力します。

    • dataProvider パラメーターのテキストフィールドをダブルクリックして、値ダイアログボックスを開きます。

    • プラス記号をクリックし、ラベルの値を Hello World! で置き換えます。

    • これまでの手順を繰り返し、ラベル値 Have a nice day! Top of the Morning! を追加します。

    • 「OK」をクリックして、値ダイアログボックスを閉じます。

  9. ファイルを保存します。

  10. アクションパネルが開いていない場合は、 F9 キーを押すか、ウィンドウメニューのアクションを選択して開きます。メインタイムラインのフレーム 1 をクリックし、アクションパネルに次のコードを入力します。

    import flash.events.Event; 
    import fl.events.ComponentEvent; 
    import fl.events.ColorPickerEvent; 
    import fl.controls.RadioButtonGroup; 
     
    var rbGrp:RadioButtonGroup = RadioButtonGroup.getGroup("fontRbGrp"); 
    rbGrp.addEventListener(MouseEvent.CLICK, rbHandler); 
    txtCp.addEventListener(ColorPickerEvent.CHANGE,cpHandler); 
    msgCb.addEventListener(Event.CHANGE, cbHandler);

    最初の 3 行で、アプリケーションが使用するイベントクラスを読み込みます。 ユーザーがコンポーネントの 1 つを操作すると、イベントが発生します。 次の 5 行で、アプリケーションがリスンするイベントのイベントハンドラーを登録します。 click イベントは、ユーザーが RadioButton をクリックすると発生します。 change イベントは、ユーザーが ColorPicker で別の色を選択すると発生します。ComboBox の change イベントは、ユーザーがドロップダウンリストから別の挨拶を選択すると発生します。

    4 行目では、アプリケーションがイベントリスナーを各ボタンに個別に割り当てるのはなく、RadioButtons のグループに割り当てることができるように、RadioButtonGroup クラスを読み込みます。

  11. 次のコード行をアクションパネルに追加して、 tf TextFormat オブジェクトを作成します。アプリケーションはこのオブジェクトを使用して、TextArea のテキストの size および color スタイルプロパティを変更します。

    var tf:TextFormat = new TextFormat();
  12. 次のコードを追加して、 rbHandler イベント処理関数を作成します。この関数は、ユーザーが RadioButton コンポーネントの 1 つをクリックしたときに click イベントを処理します。

    function rbHandler(event:MouseEvent):void { 
        switch(event.target.selection.name) { 
            case "smallRb": 
                tf.size = 14; 
                break; 
            case "largerRb": 
                tf.size = 18; 
                break; 
            case "largestRb": 
                tf.size = 24; 
                break; 
            } 
            aTa.setStyle("textFormat", tf); 
    }

    この関数は、 switch ステートメントを使用して、 event オブジェクトの target プロパティを確認し、イベントをトリガーした RadioButton を特定します。 currentTarget プロパティには、イベントをトリガーしたオブジェクトの名前が含まれます。ユーザーがクリックした RadioButton に応じて、アプリケーションは TextArea のテキストのサイズを 14、18、または 24 ポイントに変更します。

  13. 次のコードを追加して cpHandler() 関数を実装します。この関数は、ColorPicker での値の変更を処理します。

    function cpHandler(event:ColorPickerEvent):void { 
        tf.color = event.target.selectedColor; 
        aTa.setStyle("textFormat", tf); 
    }

    この関数は、 tf TextFormat オブジェクトの color プロパティを ColorPicker で選択した色に設定し、次に setStyle() を呼び出して、これを aTa TextArea インスタンスのテキストに適用します。

  14. 次のコードを追加して cbHandler() 関数を実装します。この関数は、ComboBox での選択内容の変更を処理します。

    function cbHandler(event:Event):void { 
        aTa.text = event.target.selectedItem.label; 
    }

    この関数は、TextArea のテキストを、ComboBox で選択したテキスト、 event.target.selectedItem.label で置き換えます。

  15. 制御/ムービーをプレビューするを選択するか、Control+Enter を押してコードをコンパイルし、Greetings アプリケーションをテストします。

    次の節では、外部 ActionScript クラスと、ライブラリの必須コンポーネントだけが含まれる FLA ファイルを使用して同じアプリケーションを作成する方法について説明します。

外部クラスファイルを使用した Greetings2 アプリケーションの作成:

  1. ファイル/新規を選択します。

  2. 新規ドキュメントダイアログボックスで「Flash ファイル(ActionScript 3.0)」を選択し、「OK」をクリックします。

    新しい Flash ウィンドウが開きます。

  3. ファイル/保存を選択し、Flash ファイルの名前を Greetings2.fla と指定し、「保存」ボタンをクリックします。

  4. 次の各コンポーネントをコンポーネントパネルからライブラリにドラッグします。

    • ColorPicker

    • ComboBox

    • RadioButton

    • TextArea

      コンパイルされた SWF ファイルはこれらの各アセットを使用するので、ライブラリに追加する必要があります。 コンポーネントをライブラリパネルの下部にドラッグします。 これらのコンポーネントをライブラリに追加すると、他のアセット (List、TextInput、UIScrollBox など) が自動的に追加されます。

  5. プロパティウィンドウで、「ドキュメントクラス」に Greetings2 と入力します。

    "このドキュメントクラスの定義が見つかりません" という内容の警告が表示される場合は、無視します。次の手順に従って Greetings2 クラスを定義します。 このクラスは、アプリケーションの主要な機能を定義します。

  6. "Greetings2.fla" ファイルを保存します。

  7. ファイル/新規を選択します。

  8. 新規ドキュメントダイアログボックスで「ActionScript ファイル」を選択し、「OK」をクリックします。

    新しいスクリプトウィンドウが開きます。

  9. 次のコードをスクリプトウィンドウに追加します。

    package { 
        import flash.display.Sprite; 
        import flash.events.Event; 
        import flash.events.MouseEvent; 
        import flash.text.TextFormat; 
        import fl.events.ComponentEvent; 
        import fl.events.ColorPickerEvent; 
        import fl.controls.ColorPicker; 
        import fl.controls.ComboBox; 
        import fl.controls.RadioButtonGroup; 
        import fl.controls.RadioButton; 
        import fl.controls.TextArea; 
        public class Greetings2 extends Sprite { 
            private var aTa:TextArea; 
            private var msgCb:ComboBox; 
            private var smallRb:RadioButton; 
            private var largerRb:RadioButton; 
            private var largestRb:RadioButton; 
            private var rbGrp:RadioButtonGroup; 
            private var txtCp:ColorPicker; 
            private var tf:TextFormat = new TextFormat(); 
            public function Greetings2() {    

    このスクリプトは、Greetings2 という名前の ActionScript 3.0 クラスを定義します。 このスクリプトの動作は次のとおりです。

    • ファイルで使用するクラスを読み込みます。 通常は、これらの import ステートメントは、コードで別のクラスを参照するときに追加しますが、簡潔にするために、この例ではすべてを一度に読み込みます。

    • コードに追加するさまざまなタイプのコンポーネントオブジェクトを表す変数を宣言します。 別の変数によって tf TextFormat オブジェクトが作成されます。

    • クラスのコンストラクター関数 Greetings2() を定義します。次の手順で、この関数に数行を追加し、他のメソッドをクラスに追加します。

  10. ファイル/保存を選択し、ファイルの名前を Greetings2.as と指定し、「保存」ボタンをクリックします。

  11. 次のコード行を Greeting2() 関数に追加します。

        createUI(); 
        setUpHandlers(); 
    }

    関数は次のようになります。

    public function Greetings2() { 
        createUI(); 
        setUpHandlers(); 
    }
  12. 次のコード行を Greeting2() メソッドの右括弧の後に追加します。

    private function createUI() { 
        bldTxtArea(); 
        bldColorPicker(); 
        bldComboBox(); 
        bldRadioButtons(); 
    } 
    private function bldTxtArea() { 
        aTa = new TextArea(); 
        aTa.setSize(230, 44); 
        aTa.text = "Hello World!"; 
        aTa.move(165, 57); 
        addChild(aTa); 
    } 
    private function bldColorPicker() { 
        txtCp = new ColorPicker(); 
        txtCp.move(96, 72); 
        addChild(txtCp); 
    } 
    private function bldComboBox() { 
        msgCb = new ComboBox(); 
        msgCb.width = 130; 
        msgCb.move(265, 120); 
        msgCb.prompt = "Greetings"; 
        msgCb.addItem({data:"Hello.", label:"English"});             
        msgCb.addItem({data:"Bonjour.", label:"Français"});             
        msgCb.addItem({data:"¡Hola!", label:"Español"});             
        addChild(msgCb); 
    } 
    private function bldRadioButtons() { 
        rbGrp = new RadioButtonGroup("fontRbGrp"); 
        smallRb = new RadioButton(); 
        smallRb.setSize(100, 22); 
        smallRb.move(155, 120); 
        smallRb.group = rbGrp; //"fontRbGrp"; 
        smallRb.label = "Small"; 
        smallRb.name = "smallRb"; 
        addChild(smallRb); 
        largerRb = new RadioButton(); 
        largerRb.setSize(100, 22); 
        largerRb.move(155, 148); 
        largerRb.group = rbGrp; 
        largerRb.label = "Larger"; 
        largerRb.name = "largerRb"; 
        addChild(largerRb); 
        largestRb = new RadioButton(); 
        largestRb.setSize(100, 22); 
        largestRb.move(155, 175); 
        largestRb.group = rbGrp; 
        largestRb.label = "Largest"; 
        largestRb.name = "largestRb"; 
        addChild(largestRb); 
    }

    これらの行の動作は次のとおりです。

    • アプリケーションで使用するコンポーネントをインスタンス化します。

    • 各コンポーネントのサイズ、位置およびプロパティを設定します。

    • addChild() メソッドを使用して、各コンポーネントをステージに追加します。

  13. bldRadioButtons() メソッドの右括弧の後に、 setUpHandlers() メソッドの次のコードを追加します。

    private function setUpHandlers():void { 
        rbGrp.addEventListener(MouseEvent.CLICK, rbHandler); 
        txtCp.addEventListener(ColorPickerEvent.CHANGE,cpHandler); 
        msgCb.addEventListener(Event.CHANGE, cbHandler); 
    } 
    private function rbHandler(event:MouseEvent):void { 
        switch(event.target.selection.name) { 
            case "smallRb": 
                tf.size = 14; 
                break; 
            case "largerRb": 
                tf.size = 18; 
                break; 
            case "largestRb": 
                tf.size = 24; 
                break; 
        } 
        aTa.setStyle("textFormat", tf); 
    } 
    private function cpHandler(event:ColorPickerEvent):void { 
        tf.color = event.target.selectedColor; 
        aTa.setStyle("textFormat", tf); 
    } 
    private function cbHandler(event:Event):void { 
        aTa.text = event.target.selectedItem.data; 
    } 
    } 
    }

    これらの関数は、コンポーネントのイベントリスナーを定義します。

  14. ファイル/保存を選択し、ファイルを保存します。

  15. 制御/ムービーをプレビューするを選択するか、Control+Enter を押してコードをコンパイルし、Greetings2 アプリケーションをテストします。

今後のコード例の作成と実行

Greetings アプリケーションの作成と実行が終了すると、本マニュアルに示した他のコード例の実行に必要な基本的な知識を修得できます。 個々の例では関連する ActionScript 3.0 コードを強調表示して説明するので、本マニュアルの各例をカットし、FLA ファイルにペーストした後、コンパイルして実行できます。