この節では、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 アプリケーションの作成:
-
ファイル/新規を選択します。
-
新規ドキュメントダイアログボックスで「Flash ファイル(ActionScript 3.0)」を選択し、「OK」をクリックします。
新しい Flash ウィンドウが開きます。
-
ファイル/保存を選択し、Flash ファイルの名前を
Greetings.fla
と指定し、「保存」ボタンをクリックします。
-
Flash のコンポーネントパネルで TextArea コンポーネントを選択し、ステージにドラッグします。
-
プロパティウィンドウのステージで TextArea を選択し、インスタンス名として
aTa
と入力し、次の情報を入力します。
-
ColorPicker コンポーネントをステージ上にドラッグし、TextArea の左側に配置して、インスタンス名
txtCp を指定します。
プロパティインスペクターに次の情報を入力します。
-
X 値として
96
と入力します。
-
Y 値として
72
と入力します。
-
RadioButton コンポーネントを一度に 1 つずつステージにドラッグし、インスタンス名
smallRb
、
largerRb
および
largestRb
を指定します。プロパティインスペクターで、これらのコンポーネントに関する次の情報を入力します。
-
それぞれの W 値として
100
、H 値として
22
と入力します。
-
X 値として
155
と入力します。
-
smallRb の Y 値として
120
、largerRb に
148
、largestRb に
175
と入力します。
-
それぞれの groupName パラメーターに
fontRbGrp
と入力します。
-
「パラメーター」タブで、それぞれのラベル
Small
、
Larger
および
Largest
を入力します。
-
ComboBox をステージまでドラッグし、インスタンス名
msgCb
を指定します。プロパティインスペクターで、このコンポーネントに関する次の情報を入力します。
-
W 値として
130
と入力します。
-
X 値として
265
と入力します。
-
Y 値として
120
と入力します。
-
「パラメーター」タブで、プロンプトパラメーターに
Greetings
と入力します。
-
dataProvider パラメーターのテキストフィールドをダブルクリックして、値ダイアログボックスを開きます。
-
プラス記号をクリックし、ラベルの値を
Hello World!
で置き換えます。
-
これまでの手順を繰り返し、ラベル値
Have a nice day!
と
Top of the Morning!
を追加します。
-
「OK」をクリックして、値ダイアログボックスを閉じます。
-
ファイルを保存します。
-
アクションパネルが開いていない場合は、
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 クラスを読み込みます。
-
次のコード行をアクションパネルに追加して、
tf
TextFormat オブジェクトを作成します。アプリケーションはこのオブジェクトを使用して、TextArea のテキストの
size
および
color
スタイルプロパティを変更します。
var tf:TextFormat = new TextFormat();
-
次のコードを追加して、
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 ポイントに変更します。
-
次のコードを追加して
cpHandler()
関数を実装します。この関数は、ColorPicker での値の変更を処理します。
function cpHandler(event:ColorPickerEvent):void {
tf.color = event.target.selectedColor;
aTa.setStyle("textFormat", tf);
}
この関数は、
tf
TextFormat オブジェクトの
color
プロパティを ColorPicker で選択した色に設定し、次に
setStyle()
を呼び出して、これを
aTa
TextArea インスタンスのテキストに適用します。
-
次のコードを追加して
cbHandler()
関数を実装します。この関数は、ComboBox での選択内容の変更を処理します。
function cbHandler(event:Event):void {
aTa.text = event.target.selectedItem.label;
}
この関数は、TextArea のテキストを、ComboBox で選択したテキスト、
event.target.selectedItem.label
で置き換えます。
-
制御/ムービーをプレビューするを選択するか、Control+Enter を押してコードをコンパイルし、Greetings アプリケーションをテストします。
次の節では、外部 ActionScript クラスと、ライブラリの必須コンポーネントだけが含まれる FLA ファイルを使用して同じアプリケーションを作成する方法について説明します。
外部クラスファイルを使用した Greetings2 アプリケーションの作成:
-
ファイル/新規を選択します。
-
新規ドキュメントダイアログボックスで「Flash ファイル(ActionScript 3.0)」を選択し、「OK」をクリックします。
新しい Flash ウィンドウが開きます。
-
ファイル/保存を選択し、Flash ファイルの名前を
Greetings2.fla
と指定し、「保存」ボタンをクリックします。
-
次の各コンポーネントをコンポーネントパネルからライブラリにドラッグします。
-
プロパティウィンドウで、「ドキュメントクラス」に
Greetings2
と入力します。
"このドキュメントクラスの定義が見つかりません" という内容の警告が表示される場合は、無視します。次の手順に従って Greetings2 クラスを定義します。 このクラスは、アプリケーションの主要な機能を定義します。
-
"Greetings2.fla" ファイルを保存します。
-
ファイル/新規を選択します。
-
新規ドキュメントダイアログボックスで「ActionScript ファイル」を選択し、「OK」をクリックします。
新しいスクリプトウィンドウが開きます。
-
次のコードをスクリプトウィンドウに追加します。
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()
を定義します。次の手順で、この関数に数行を追加し、他のメソッドをクラスに追加します。
-
ファイル/保存を選択し、ファイルの名前を
Greetings2.as
と指定し、「保存」ボタンをクリックします。
-
次のコード行を
Greeting2()
関数に追加します。
createUI();
setUpHandlers();
}
関数は次のようになります。
public function Greetings2() {
createUI();
setUpHandlers();
}
-
次のコード行を
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()
メソッドを使用して、各コンポーネントをステージに追加します。
-
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;
}
}
}
これらの関数は、コンポーネントのイベントリスナーを定義します。
-
ファイル/保存を選択し、ファイルを保存します。
-
制御/ムービーをプレビューするを選択するか、Control+Enter を押してコードをコンパイルし、Greetings2 アプリケーションをテストします。
今後のコード例の作成と実行
Greetings アプリケーションの作成と実行が終了すると、本マニュアルに示した他のコード例の実行に必要な基本的な知識を修得できます。 個々の例では関連する ActionScript 3.0 コードを強調表示して説明するので、本マニュアルの各例をカットし、FLA ファイルにペーストした後、コンパイルして実行できます。
|
|
|