Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > ActionScript の使用について > 例 : 基本的なアプリケーションの作成 | |||
Flash、Flex Builder、Dreamweaver、または任意のテキストエディタを使用して、.as 拡張子を持つ外部 ActionScript ソースファイルを作成できます。
ActionScript 3.0 は、Flash オーサリングツールや Flex Builder などのさまざまなアプリケーション開発環境で使用できます。
このセクションでは、Flash オーサリングツールまたは Flex Builder 2 ツールを使用した簡単な ActionScript 3.0 アプリケーションの作成と拡張をステップ方式で学習します。作成するアプリケーションは、ActionScript 3.0 の外部クラスファイルを Flash および Flex アプリケーションで使用するための単純な見本を提示します。そのパターンは、本書の他のすべてのアプリケーション例に適用できます。
アプリケーションの作成を始める前に、どのようなアプリケーションにするかを考えておく必要があります。
設計は、アプリケーションの名前と目的を示す短い説明などの簡単なもので表しても、多数の UML (Unified Modeling Language) 図を含む要件書一式のような複雑なもので表しても構いません。本書では、ソフトウェアの設計分野を詳細に扱いませんが、ActionScript アプリケーションの開発においてアプリケーション設計は欠かすことのできない手順であることに注意してください。
ActionScript アプリケーションの最初の例は、単純な設計を使用した、標準的な "Hello World" アプリケーションです。
この簡潔な定義を使用して、アプリケーションの作成を開始します。
Hello World アプリケーションの設計説明では、再利用しやすいコードを使用するよう指定されています。この目標を考慮し、アプリケーションは Greeter という名前のオブジェクト指向クラスを 1 つ使用します。このクラスは、Flex Builder または Flash オーサリングツールで作成したアプリケーション内から使用されます。
新しい ActionScript 編集ウィンドウが表示されます。
Greeter クラスへのコードの追加 に進みます。
Greeter クラスはオブジェクト Greeter を定義し、これは HelloWorld アプリケーションで使用できます。
package
{
public class Greeter
{
public function sayHello():String
{
var greeting:String;
greeting = "Hello World!";
return greeting;
}
}
}
Greeter クラスには、指定されたユーザー名に対して "Hello" という文字列を返す 1 つの sayHello() メソッドが格納されます。
これで、Flash または Flex アプリケーションで Greeter クラスを使用することができます。
作成した Greeter クラスは、必要なものをすべて備えたアプリケーション機能を定義しますが、アプリケーション全部を表すわけではありません。Greeter クラスを使用するには、Flash ドキュメントまたは Flex アプリケーションを作成する必要があります。
HelloWorld アプリケーションでは、Greeter クラスの新しいインスタンスが作成されます。次に示すのは、アプリケーションに Greeter クラスをアタッチする方法です。
新しい Flash ウィンドウが表示されます。
mainText と入力します。
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("Bob");
ActionScript アプリケーションのパブリッシュとテスト に進みます。
アプリケーション開発は反復プロセスです。コードを記述し、コンパイルして、正しくコンパイルされるまでコードを編集します。コンパイルされたアプリケーションを実行しテストして、意図した設計が実現されているかどうかを確認します。実現されていない場合は、実現するまでコードを編集します。Flash および Flex Builder の開発環境には、アプリケーションをパブリッシュ、テスト、およびデバッグする多数の方法が用意されています。
次に各環境で HelloWorld アプリケーションをテストする基本的な手順を示します。
ActionScript 3.0 を使用する、簡単ですが完全なオブジェクト指向アプリケーションが作成できました。HelloWorld アプリケーションの拡張に進みます。
ここでは、アプリケーションをもう少し興味深いものにしてみます。そのために、アプリケーションにユーザー名を要求させ、それを定義済みの名前リストと検証させます。
まず、Greeter クラスを更新して新しい機能を追加します。次に、Flex または Flash アプリケーションを更新して新しい機能を使用します。
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 クラスは、いくつかの新しい機能が追加されました。
validNames 配列は、有効なユーザー名をリスト表示します。この配列は、Greeter クラスのロード時に 3 つの名前のリストに初期化されます。sayHello() メソッドは、ユーザー名を受け付け、何らかの条件に基づいてあいさつを変更できるようになります。userName が空の文字列 ("") である場合、greeting プロパティはユーザーに名前の入力を要求する設定になります。ユーザー名が有効であれば、あいさつは "Hello, userName" になります。最後に、2 つの条件のいずれかに適合しない場合、greeting 変数は、"Sorry, userName, you are not on the list." に設定されます。validName() メソッドは、inputName が validNames 配列内で見つかった場合は true を、見つからない場合は false を返します。ステートメント validNames.indexOf(inputName) は、validNames 配列内で inputName 文字列と同じ文字列をそれぞれ検査します。Array.indexOf() メソッドは、配列内のオブジェクトの最初のインスタンスのインデックス位置、またはオブジェクトが配列に見つからない場合は値 -1 を返します。 次に、この ActionScript クラスを参照する Flash ファイルまたは Flex ファイルを編集します。
"") が Greeter クラスの sayHello() メソッドに渡されるようにします。
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("");
mainText テキストフィールドのすぐ下に 2 つの新しいテキストフィールドを並べて作成します。textIn と入力します。
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);
}
}
この新しいコードでは、以下の機能が追加されます。
textIn フィールドなどの入力テキストフィールドには、ディスパッチできるイベントのセットがあります。addEventListener() メソッドによって、特定のタイプのイベントが発生したときに実行される関数を定義することができます。この例で該当するイベントは、キーボードの Enter キーが押されることです。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);
}
}
アプリケーションを実行すると、ユーザー名の入力を求められます。有効なユーザー名 (Sammy、Frank、または Dean) を入力すると、"hello" という確認メッセージが表示されます。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000035.html