Edit
Flashの開発

Flashの開発には大きくわけて、タイムラインを利用したFlash Professional CS5を利用した、操作が単純な分岐だけのものと、DBや他のプログラムと動的に通信したり、ダイナミックに画像を作成したり動かしたりするFLEXとがある。

このページでは主にゲーム開発などリッチコンテンツ製作に使われるFlexを中心に説明していく。

Edit
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を中心に説明していきたい。

Edit
FlashDevelopのインストール

このツールは非常に簡単にインストールできるので、ここで説明するよりも、ここのページを見た方が早いと思われるので、このページを参考にインストールしてほしい。

Edit
ActionScript3.0の言語仕様の概要

ActionScript3.0(以後AS3)では1行のステートメント(命令文)の最後には「;」を付け、文の終わりを宣言する必要があります。

Edit
変数の定義

AS3では、変数の定義が必要です。

var value1:Number;

この変数定義文の意味は、value1 という変数名の変数をNumber型(数字型)で利用するという宣言です。変数を利用するには必ず宣言が必要になります。もちろんプログラムが実行されている時に数字以外のデータを代入しようとするとエラーとなります。

データ型の種類

型の定義名定義されるデータ形式の説明
Stringテキスト値です。名前、または本の章のテキストに似ています。
Number任意の数値です。分数を含む場合と含まない場合があります。
int整数(分数を含まない整数)です。32ビット整数なので、-2147418113〜2147418113の範囲
uint32ビット「符号なし」整数です。負ではない整数を意味します。0〜4294836225の範囲
Booleantrue または false しか存在しない変数。スイッチがオンかどうか、2 つの値が等しいかどうかなどを表します。

Edit
変数の代入

value1 = 10;

この行は、value1 という変数に10という数字を代入する。

Edit
XML変数の型と代入

特殊な型に以下のような物がある。

var employee:XML = <employee><firstName>Suzuki</firstName></employee>;

Edit
定数の定義

定数とは、代入の出来ない変数であり、主に決まった値を分かりやすい単語にしておくための機能です。

const SALES_TAX_RATE:Number = 0.07;

このconstというのが定数定義という宣言で、SALES_TAX_RATEがプログラム中で利用する定数となります。ここでは、Number型で宣言して0.07を代入しています。
※注意:通常、定数は定義する単語をすべて大文字で定義します

Edit
プロパティ変更

オブジェクト指向型のプログラミングでは、オブジェクトを生成したあと、そのオブジェクトの持つプロパティ(属性)を簡単に変更できる。

var box:MovieClip = new MovieClip();
box.x = 100;

このように、ピリオド+プロパティ名の指定で、そのオブジェクトが持つプロパティを操作することができる。また文字列なども「+」記号を利用することで、文字を接続する事が簡単にできるようになっている。

box.name = "Hello " + "World" + " !¥n";

このbox.nameの中身は、"Hello World !¥n" というデータになっている。

Edit
メソッドの利用

メソッドはオブジェクトが持っている処理を指しており、通常はオブジェクトのプロパティを操作する機能を提供します。利用方法は簡単で、オブジェクト名.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);

Edit
イベント

イベントは上記のものよりも、よりFlashのシステムに密着した仕組みであり、基本的な考え方は、クラスにイベント時の挙動を記述し、その処理名をイベントリスナーに登録して、イベントが発生したら呼び出してもらうような流れとなる。

Edit
演算子

四則演算子

記号意味
+足し算
-引き算
*かけ算
/割り算

比較演算子

記号意味
==イコール
<=左辺は右辺以下
>=左辺は右辺以上
!=左辺と右辺は異なる
ほか

Edit
言語の勉強に参考となるリンク

Edit
AS3の特殊な挙動について

Edit
その他の便利な関数

Edit
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>

Edit
面白いサイト

ECOTONOHA
UNIQLO GRID
Yogop
ラジアンの分かりやすい説明

Edit
参考ページ