Flashの開発には大きくわけて、タイムラインを利用したFlash Professional CS5を利用した、操作が単純な分岐だけのものと、DBや他のプログラムと動的に通信したり、ダイナミックに画像を作成したり動かしたりするFLEXとがある。
このページでは主にゲーム開発などリッチコンテンツ製作に使われるFlexを中心に説明していく。
現在、Flashシステムの提唱者である、Adobe社からFlex4のSDKが発売され、新しい環境による開発が可能になっている。(2010年3月から)具体的には、Flash Professionalや Flex Builderなどで、デザインとプログラムの分業が出来ていなかった物を、FXGという、Flash用の新しいXMLベースのレイアウトフォーマットファイルを利用する。
デザイナーは、IllustratorやPhotoshopから、Flash Catalystを使って、その方式のファイルを作成することができ、プログラマーはFlex4SDKと、FlashBuilderを利用し、CatalystやFlash Professionalなどで作成したファイルを読み込むことで、作業の分離を図っている。
しかしながら、この環境はadobe社の製品をいろいろ買わなくてはならないため、ここでは無料の開発環境である、Flex4SDK+FlashDevelopを中心に説明していきたい。
このツールは非常に簡単にインストールできるので、ここで説明するよりも、ここのページを見た方が早いと思われるので、このページを参考にインストールしてほしい。
ActionScript3.0(以後AS3)では1行のステートメント(命令文)の最後には「;」を付け、文の終わりを宣言する必要があります。
AS3では、変数の定義が必要です。
var value1:Number;
この変数定義文の意味は、value1 という変数名の変数をNumber型(数字型)で利用するという宣言です。変数を利用するには必ず宣言が必要になります。もちろんプログラムが実行されている時に数字以外のデータを代入しようとするとエラーとなります。
データ型の種類
型の定義名 | 定義されるデータ形式の説明 |
String | テキスト値です。名前、または本の章のテキストに似ています。 |
Number | 任意の数値です。分数を含む場合と含まない場合があります。 |
int | 整数(分数を含まない整数)です。32ビット整数なので、-2147418113〜2147418113の範囲 |
uint | 32ビット「符号なし」整数です。負ではない整数を意味します。0〜4294836225の範囲 |
Boolean | true または false しか存在しない変数。スイッチがオンかどうか、2 つの値が等しいかどうかなどを表します。 |
value1 = 10;
この行は、value1 という変数に10という数字を代入する。
特殊な型に以下のような物がある。
var employee:XML = <employee><firstName>Suzuki</firstName></employee>;
定数とは、代入の出来ない変数であり、主に決まった値を分かりやすい単語にしておくための機能です。
const SALES_TAX_RATE:Number = 0.07;
このconstというのが定数定義という宣言で、SALES_TAX_RATEがプログラム中で利用する定数となります。ここでは、Number型で宣言して0.07を代入しています。
※注意:通常、定数は定義する単語をすべて大文字で定義します
オブジェクト指向型のプログラミングでは、オブジェクトを生成したあと、そのオブジェクトの持つプロパティ(属性)を簡単に変更できる。
var box:MovieClip = new MovieClip(); box.x = 100;
このように、ピリオド+プロパティ名の指定で、そのオブジェクトが持つプロパティを操作することができる。また文字列なども「+」記号を利用することで、文字を接続する事が簡単にできるようになっている。
box.name = "Hello " + "World" + " !¥n";
このbox.nameの中身は、"Hello World !¥n" というデータになっている。
メソッドはオブジェクトが持っている処理を指しており、通常はオブジェクトのプロパティを操作する機能を提供します。利用方法は簡単で、オブジェクト名.xxx()と、ピリオド+メソッド名+括弧で表現します。
box.play(); <- Boxオブジェクトのplayメソッドを呼び出す。
また単純な数字を代入する変数も、内部的にはオブジェクトなので、メソッドを持っています。
var value1:Number = 30; var numberText:String = value1.toString();
この例では、numberTextというString型(文字型)の変数に、文字としてvalue1の値(ここでは30)が代入されています。これはNumber型は.toString()というメソッドを持っているということです。
ここで気がついたと思いますが、基本データ形式においては、文字と数字しかないため代入時に自動的にコンストラクタ(実体を作る特殊命令)が実体を作っており、型の宣言はまさに、変数の名前だけについて定義され、実体そのものは常にコンストラクタによって生成されています。(実体とは実データが保管されている場所または場所を指すポインタ)
var value1:Number = 30;
この行は内部的には、下記の省略形とも考えることでより理解しやすい。
var value1:Number = new Number(30);
イベントは上記のものよりも、よりFlashのシステムに密着した仕組みであり、基本的な考え方は、クラスにイベント時の挙動を記述し、その処理名をイベントリスナーに登録して、イベントが発生したら呼び出してもらうような流れとなる。
四則演算子
記号 | 意味 |
+ | 足し算 |
- | 引き算 |
* | かけ算 |
/ | 割り算 |
比較演算子
記号 | 意味 |
== | イコール |
<= | 左辺は右辺以下 |
>= | 左辺は右辺以上 |
!= | 左辺と右辺は異なる |
ほか |
フラッシュでは、サーバーのポート843番に、下記の「ソケットポリシーファイル」を公開させる必要がある。これは公開されるドメインや利用ポートなどの設定を行うものであるが、下記のサンプルでは、ドメイン制限、ポート制限は共に外した設定になっている。
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" to-ports="*"/> </cross-domain-policy>
ECOTONOHA
UNIQLO GRID
Yogop
ラジアンの分かりやすい説明