例 : 基本的なアプリケーションの作成

Flash、Flex Builder、Dreamweaver、または任意のテキストエディタを使用して、.as 拡張子を持つ外部 ActionScript ソースファイルを作成できます。

ActionScript 3.0 は、Flash オーサリングツールや Flex Builder などのさまざまなアプリケーション開発環境で使用できます。

このセクションでは、Flash オーサリングツールまたは Flex Builder 2 ツールを使用した簡単な ActionScript 3.0 アプリケーションの作成と拡張をステップ方式で学習します。作成するアプリケーションは、ActionScript 3.0 の外部クラスファイルを Flash および Flex アプリケーションで使用するための単純な見本を提示します。そのパターンは、本書の他のすべてのアプリケーション例に適用できます。

サブトピック

ActionScript アプリケーションの設計
HelloWorld プロジェクトと Greeter クラスの作成
Greeter クラスへのコードの追加
ActionScript コードを使用するアプリケーションの作成
ActionScript アプリケーションのパブリッシュとテスト
HelloWorld アプリケーションの拡張

ActionScript アプリケーションの設計

アプリケーションの作成を始める前に、どのようなアプリケーションにするかを考えておく必要があります。

設計は、アプリケーションの名前と目的を示す短い説明などの簡単なもので表しても、多数の UML (Unified Modeling Language) 図を含む要件書一式のような複雑なもので表しても構いません。本書では、ソフトウェアの設計分野を詳細に扱いませんが、ActionScript アプリケーションの開発においてアプリケーション設計は欠かすことのできない手順であることに注意してください。

ActionScript アプリケーションの最初の例は、単純な設計を使用した、標準的な "Hello World" アプリケーションです。

この簡潔な定義を使用して、アプリケーションの作成を開始します。

HelloWorld プロジェクトと Greeter クラスの作成

Hello World アプリケーションの設計説明では、再利用しやすいコードを使用するよう指定されています。この目標を考慮し、アプリケーションは Greeter という名前のオブジェクト指向クラスを 1 つ使用します。このクラスは、Flex Builder または Flash オーサリングツールで作成したアプリケーション内から使用されます。

Flash オーサリングツールで Greeter クラスを作成するには:

  1. Flash オーサリングツールで [ファイル]-[新規] を選択します。
  2. [新規ドキュメント] ダイアログボックスで ActionScript ファイルを選択し、[OK] をクリックします。

    新しい ActionScript 編集ウィンドウが表示されます。

  3. [ファイル]-[保存] を選択します。アプリケーションを保存するフォルダを選択し、ActionScript ファイルに Greeter.as という名前を付けて [OK] をクリックします。

    Greeter クラスへのコードの追加 に進みます。

Greeter クラスへのコードの追加

Greeter クラスはオブジェクト Greeter を定義し、これは HelloWorld アプリケーションで使用できます。

Greeter クラスにコードを追加するには :

  1. 新しいファイルに次のコードを入力します。
    package 
    {
        public class Greeter 
        {
            public function sayHello():String 
            {
                var greeting:String;
                greeting = "Hello World!";
                return greeting;
            }
        }
    }
    

    Greeter クラスには、指定されたユーザー名に対して "Hello" という文字列を返す 1 つの sayHello() メソッドが格納されます。

  2. [ファイル]-[保存] を選択して、この ActionScript ファイルを保存します。

これで、Flash または Flex アプリケーションで Greeter クラスを使用することができます。

ActionScript コードを使用するアプリケーションの作成

作成した Greeter クラスは、必要なものをすべて備えたアプリケーション機能を定義しますが、アプリケーション全部を表すわけではありません。Greeter クラスを使用するには、Flash ドキュメントまたは Flex アプリケーションを作成する必要があります。

HelloWorld アプリケーションでは、Greeter クラスの新しいインスタンスが作成されます。次に示すのは、アプリケーションに Greeter クラスをアタッチする方法です。

Flash オーサリングツールを使用して ActionScript アプリケーションを作成するには:

  1. [ファイル]-[新規] を選択します。
  2. [新規ドキュメント] ダイアログボックスで [Flash ドキュメント] を選択し、[OK] をクリックします。

    新しい Flash ウィンドウが表示されます。

  3. [ファイル]-[保存] を選択します。Greeter.as クラスファイルと同じフォルダを選択し、Flash ドキュメントに HelloWorld.fla という名前を付けて [OK] をクリックします。
  4. [Flash ツール] パレットで [テキストツール] を選択した後、ステージ上をドラッグして、幅約 300 ピクセル、高さ約 100 ピクセルの新しいテキストフィールドを定義します。
  5. ステージ上のテキストフィールドが選択された状態のままで、[プロパティ] ウィンドウにテキストフィールドのインスタンス名として mainText と入力します。
  6. メインタイムラインの最初のフレームをクリックします。
  7. [アクション] パネルに次のスクリプトを入力します。
    var myGreeter:Greeter = new Greeter();
    mainText.text = myGreeter.sayHello("Bob");
    
  8. ファイルを保存します。

ActionScript アプリケーションのパブリッシュとテスト に進みます。

ActionScript アプリケーションのパブリッシュとテスト

アプリケーション開発は反復プロセスです。コードを記述し、コンパイルして、正しくコンパイルされるまでコードを編集します。コンパイルされたアプリケーションを実行しテストして、意図した設計が実現されているかどうかを確認します。実現されていない場合は、実現するまでコードを編集します。Flash および Flex Builder の開発環境には、アプリケーションをパブリッシュ、テスト、およびデバッグする多数の方法が用意されています。

次に各環境で HelloWorld アプリケーションをテストする基本的な手順を示します。

Flash オーサリングツールを使用して ActionScript アプリケーションをパブリッシュおよびテストするには:

  1. アプリケーションをパブリッシュして、コンパイルエラーがないか確認します。Flash オーサリングツールで [コントロール]-[ムービープレビュー] を選択して、ActionScript コードをコンパイルして HelloWorld アプリケーションを実行します。
  2. アプリケーションをテストしたときに、[出力] ウィンドウにエラーや警告が表示された場合は、HelloWorld.fla または HelloWorld.as ファイルでエラーの原因を修正してから、アプリケーションのテストを再び試みます。
  3. コンパイルエラーがなければ、Flash Player ウィンドウに Hello World アプリケーションが表示されます。ウィンドウには "Hello, Bob" というテキストが表示されます。

ActionScript 3.0 を使用する、簡単ですが完全なオブジェクト指向アプリケーションが作成できました。HelloWorld アプリケーションの拡張に進みます。

HelloWorld アプリケーションの拡張

ここでは、アプリケーションをもう少し興味深いものにしてみます。そのために、アプリケーションにユーザー名を要求させ、それを定義済みの名前リストと検証させます。

まず、Greeter クラスを更新して新しい機能を追加します。次に、Flex または Flash アプリケーションを更新して新しい機能を使用します。

Greeter.as ファイルを更新するには :

  1. "Greeter.as" ファイルを開きます。
  2. ファイルの内容を次のように変更します。新しい行および変更された行は太字で表示されています。
    package
    {
        public class Greeter
        {
            /**
             * Defines the names that should receive a proper greeting.
             */
            public static var validNames:Array = ["Sammy", "Frank", "Dean"];
    
            /**
             * Builds a greeting string using the given name.
             */
            public function sayHello(userName:String = ""):String 
            {
                var greeting:String;
                if (userName == "") 
                {
                    greeting = "Hello. Please type your user name, and then press the Enter key.";
                } 
                else if (validName(userName)) 
                {
                    greeting = "Hello, " + userName + ".";
                } 
                else 
                {
                    greeting = "Sorry, " + userName + ", you are not on the list.";
                }
                return greeting;
            }
            
            /**
             * Checks whether a name is in the validNames list.
             */
            public static function validName(inputName:String = ""):Boolean 
            {
                if (validNames.indexOf(inputName) > -1) 
                {
                    return true;
                } 
                else 
                {
                    return false;
                }
            }
        }
    }
    

    Greeter クラスは、いくつかの新しい機能が追加されました。

  3. validNames 配列は、有効なユーザー名をリスト表示します。この配列は、Greeter クラスのロード時に 3 つの名前のリストに初期化されます。
  4. sayHello() メソッドは、ユーザー名を受け付け、何らかの条件に基づいてあいさつを変更できるようになります。userName が空の文字列 ("") である場合、greeting プロパティはユーザーに名前の入力を要求する設定になります。ユーザー名が有効であれば、あいさつは "Hello, userName" になります。最後に、2 つの条件のいずれかに適合しない場合、greeting 変数は、"Sorry, userName, you are not on the list." に設定されます。
  5. validName() メソッドは、inputNamevalidNames 配列内で見つかった場合は true を、見つからない場合は false を返します。ステートメント validNames.indexOf(inputName) は、validNames 配列内で inputName 文字列と同じ文字列をそれぞれ検査します。Array.indexOf() メソッドは、配列内のオブジェクトの最初のインスタンスのインデックス位置、またはオブジェクトが配列に見つからない場合は値 -1 を返します。

次に、この ActionScript クラスを参照する Flash ファイルまたは Flex ファイルを編集します。

Flash オーサリングツールを使用してアプリケーションを変更するには:

  1. HelloWorld.fla ファイルを開きます。
  2. フレーム 1 のスクリプトを変更して、空の文字列 ("") が Greeter クラスの sayHello() メソッドに渡されるようにします。
    var myGreeter:Greeter = new Greeter();
    mainText.text = myGreeter.sayHello("");
    
  3. [ツール] パレットの [テキスト] ツールを選択して、ステージ上で既存の mainText テキストフィールドのすぐ下に 2 つの新しいテキストフィールドを並べて作成します。
  4. 最初のテキストフィールドに、ラベルとなるテキストとして User Name: と入力します。
  5. もう 1 つの新しいテキストフィールドを選択して、プロパティインスペクタでテキストフィールドのタイプとして InputText を選択します。インスタンス名として textIn と入力します。
  6. メインタイムラインの最初のフレームをクリックします。
  7. [アクション] パネルで、既存のスクリプトの末尾に以下の行を追加します。
    mainText.border = true;
    textIn.border = true;
    
    textIn.addEventListener(KeyboardEvent.KEY_UP, keyPressed);
    
    function keyPressed(event:Event):void
    {
        if (event.keyCode == Keyboard.ENTER)
        {
            mainText.text = myGreeter.sayHello(textIn.text);
        }
    }
    

    この新しいコードでは、以下の機能が追加されます。

  8. 最初の 2 行は、単純に 2 つのテキストフィールドの境界線を定義します。
  9. textIn フィールドなどの入力テキストフィールドには、ディスパッチできるイベントのセットがあります。addEventListener() メソッドによって、特定のタイプのイベントが発生したときに実行される関数を定義することができます。この例で該当するイベントは、キーボードの Enter キーが押されることです。
  10. keyPressed() カスタム関数は、myGreeter オブジェクトの sayHello() メソッドを呼び出し、textIn テキストフィールドのテキストをパラメータとして渡します。このメソッドは、渡された値に基づいて挨拶の文字列を返します。返された文字列は、mainText テキストフィールドの text プロパティに割り当てられます。

    フレーム 1 の完全なスクリプトは次のようになります。

    mainText.border = true;
    textIn.border = true;
    
    var myGreeter:Greeter = new Greeter();
    mainText.text = myGreeter.sayHello("");
    
    textIn.addEventListener(KeyboardEvent.KEY_UP, keyPressed);
    
    function keyPressed(event:Event):void
    {
        if (event.keyCode == Keyboard.ENTER)
        {
            mainText.text = myGreeter.sayHello(textIn.text);
        }
    }
    
  11. ファイルを保存します。
  12. [コントロール]-[ムービープレビュー] を選択して、アプリケーションを実行します。

    アプリケーションを実行すると、ユーザー名の入力を求められます。有効なユーザー名 (Sammy、Frank、または Dean) を入力すると、"hello" という確認メッセージが表示されます。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000035.html