Flashゲーム講座 & アクションスクリプトサンプル集
ActionScript の基本的な API
| ・ | マウスカーソルの座標を取得する |
| ・ | 自作のマウスカーソルを作成する |
| ・ | 自作のマウスカーソルをゆっくり近づける |
| ・ | 自作のマウスカーソルを動かした方向に向ける |
| ・ | インスタンスをドラッグする |
| ・ | インスタンスをドロップする |
| ・ | マウスホイールの回転を取得する(Flash 7 以降) |
| ・ | キーボードが押されたか調べる |
| ・ | キーコードの一覧表 |
| ・ | 2つのキーが同時に押されたか調べる |
| ・ | キーボードが押された瞬間を調べる |
| ・ | キーボードが離された瞬間を調べる |
| ・ | すべてのキーが押されていないかを調べる |
| ・ | キーボードを押してムービークリップを動かす |
| ・ | キーボード操作の割り当てを変更する |
| ・ | テキストフィールドを動的に作成する |
| ・ | テキストフィールドに文字を表示する |
| ・ | テキストフィールドのプロパティを設定する |
| ・ | テキストフィールドの書式を設定する |
| ・ | スタイルシートを適用する(Flash 7 以降) |
| ・ | 高品質アンチエイリアスを使用する(Flash 8 以降) |
| ・ | TextSnapshot クラスについて |
| ・ | 静止テキストの文字を取得する |
| ・ | 静止テキストの文字の選択属性を設定する |
| ・ | ビデオを作成する |
| ・ | 動画ファイルを再生する (Flash 7 以降) |
| ・ | Webカメラの映像を表示する |
| ・ | 映像ソースの解像度を取得する |
| ・ | スムージングを設定する |
| ・ | 非ブロッキングフィルタを設定する |
| ・ | 静的に配置したサウンドの音量を変更したい |
| ・ | 静的に配置したサウンドのパンを変更したい |
| ・ | 左右のスピーカー出力を詳細に設定したい |
| ・ | ライブラリにあるサウンドを動的に再生したい |
| ・ | 外部にあるサウンドを動的に再生したい(Flash 6 以降) |
| ・ | すべて読み込んでから再生を開始したい |
| ・ | 読み込まれたバイト数を調べたい |
| ・ | 読み込まれたパーセントを調べたい |
| ・ | 読み込まれた状況をメータで表示したい |
| ・ | 読み込みの転送量を調べたい |
| ・ | 読み込み完了までの推定時間を調べたい |
| ・ | 画質の違いについて |
| ・ | 画質を変更したい |
| ・ | 負荷に応じて画質を自動的に変更したい |
| ・ | 共有オブジェクトとは? |
| ・ | 共有オブジェクトを作成して読み込みたい |
| ・ | 共有オブジェクトを保存したい |
| ・ | 共有オブジェクトを削除したい |
| ・ | 深度とは? |
| ・ | インスタンスの深度を変更する |
| ・ | インスタンスの深度を取得する(Flash 6 以降) |
| ・ | 深度を指定してインスタンスを取得する(Flash 7 以降) |
| ・ | 最前面となる深度を取得する(Flash 7 以降) |
| ・ | ムービークリップを着色する |
| ・ | ムービークリップに詳細な色を設定する |
| ・ | カラーマトリックスフィルタを使用する(Flash 8 以降) |
| ・ | コンテキストメニューとは? |
| ・ | コンテキストメニューを非表示にする |
| ・ | コンテキストメニューが表示されるか調べる(Flash 7 以降) |
| ・ | コンテキストメニューに項目を追加する(Flash 7 以降) |
| ・ | インスタンスにコンテキストメニューを登録する(Flash 7 以降) |
| ・ | 経過した時間を調べる |
| ・ | 現在のローカルの日付/時間を取得する |
| ・ | デジタル時計を作成する |
| ・ | アナログ時計を作成する |
| ・ | 一定時間隔で、繰り返し関数を実行する(Flash 6 以降) |
| ・ | フレームレート間隔で、繰り返し関数を実行する |
| ・ | サンドボックスとは? |
| ・ | 別ドメインへのアクセスについて |
| ・ | 描画した物をすべてクリアしたい |
| ・ | 線のスタイルについて |
| ・ | 塗りのスタイルについて |
| ・ | 直線を描画したい |
| ・ | 曲線を描画したい |
| ・ | マウスで自由に線を引きたい |
| ・ | パスで囲んで面を描画したい |
| ・ | スケールモードを設定したい(Flash 6 以降) |
| ・ | ウインドウのサイズを調べたい(Flash 6 以降) |
| ・ | 整列する位置を指定したい(Flash 6 以降) |
| ・ | フルスクリーンで表示したい |
| ・ | 9 スライスの拡大/縮小を使用したい(Flash 8 以降) |
| ・ | ハードウェアスケーリングを使用したい(Flash 9以降) |
| ・ | ハードの情報を調べたい(Flash 6以降) |
| ・ | FlashPlayerのバージョンを調べる |
| ・ | Flashが置かれているURLを調べる |
| ・ | システムクリップボードにコピーする(Flash 7 以降) |
| ・ | システムメニューを呼び出す(Flash 6 以降) |
| ・ | IMEの使用を切り替える(Flash 8 以降) |
| ・ | IMEの変換モードを設定する(Flash 8 以降) |
| ・ | フォーカスとは? |
| ・ | フォーカスのあるインスタンスを調べる |
| ・ | インスタンスにフォーカスを与える |
| ・ | テキストフィールドの編集位置を調べる |
| ・ | テキストフィールドを範囲選択する |
| ・ | マイクを使用する |
| ・ | マイクの増幅率を設定する |
| ・ | マイクのキャプチャーレートを設定する |
| ・ | マイクのエコー抑制を設定する |
| ・ | マイクのアクティビティを検出する |
| ・ | カメラの映像を表示する |
| ・ | キャプチャモードを設定する |
| ・ | モーションを検出する |
| ・ | ブレンドについて |
| ・ | インスタンスにブレンドを適用する |
| ・ | ブレンドの種類について |
| ・ | ブラーフィルタを使用したい |
| ・ | べベルフィルタを使用したい |
| ・ | ドロップシャドウフィルタを使用したい |
| ・ | グローフィルタを使用したい |
| ・ | カラーマトリックスフィルタを使用したい |
| ・ | フィルタを使用するときの注意事項 |
| ・ | フィルタを適用したい |
| ・ | ビットマップキャッシュとは? |
| ・ | ムービークリップをキャッシュ化する |
| ・ | AsBroadcaster クラスについて |
| ・ | ブロードキャスターを作成する |
| ・ | リスナーを登録する |
| ・ | メッセージを発行する |
| ・ | 一度だけ初期化したい(Flash 6 以降) |
| ・ | 変数をプリントデバッグしたい |
| ・ | アクションスクリプトを外部に置きたい |
| ・ | データの型を調べる |
| ・ | if文を使って一括コメントアウトする |
データを扱うための API
| ・ | Object クラスについて |
| ・ | オブジェクトを作成する |
| ・ | オブジェクトツリーを構築する |
| ・ | Object クラスのプロパティについて |
| ・ | Object クラスのメソッドについて |
| ・ | Object クラスのデータ管理について |
| ・ | オブジェクトをコピーする |
| ・ | 参照(リファレンスデータ)について |
| ・ | Array クラスとは? |
| ・ | 配列を作成する |
| ・ | 多次元配列を作成する |
| ・ | Array クラスのプロパティについて |
| ・ | Array クラスのメソッドについて |
| ・ | Array クラスのデータ管理について |
| ・ | Function クラスについて |
| ・ | 関数を作成する |
| ・ | Function クラスのプロパティについて |
| ・ | Function クラスのメソッドについて |
| ・ | クロージャについて |
| ・ | コンストラクタ関数について |
| ・ | プロトタイプについて |
JavaScript と連動した Flash
| ・ | Flash から JavaScript にアクセスする |
| ・ | JavaScript から Flash にアクセスする |
| ・ | JavaScript 実行に関するサンドボックスについて |
| ・ | 日本語などの全角文字を渡す |
CGI と連動した Flash
ゲームアルゴリズム的なお話
| ・ | 乱数とは? |
| ・ | 乱数を取得する(小数値) |
| ・ | 乱数を取得する(整数値) |
| ・ | 擬似乱数を使用する |
| ・ | 連続しない乱数を取得する |
| ・ | 配列の中身をシャッフルする |
| ・ | 一定の速さで移動させたい |
| ・ | 加速しながら移動させたい |
| ・ | 減速(摩擦)しながら移動させたい |
| ・ | 波のように移動させたい |
| ・ | 円のように移動させたい |
| ・ | 放物線(自由落下)のように移動させたい |
| ・ | 振り子のように移動させたい |
| ・ | 点とインスタンスとで当たり判定を取る |
| ・ | インスタンス同士で当たり判定を取る |
| ・ | 四角形(矩形)同士で当たり判定を取る |
| ・ | 円同士で当たり判定を取る |
| ・ | 点が線を境にどちら側にあるか判定を取る |
| ・ | 二次元配列を使った当たり判定を取る |
| ・ | レイと線分とで当たり判定を取る |
| ・ | 玉同士の衝突を計算する |
| ・ | 矩形を使った地形との衝突を計算する |
| ・ | 円と線を使った地形との衝突を計算する |
| ・ | 単純な無限スクロール |
| ・ | マウスでスクロールするマップ |
| ・ | スクロールするゲームの作り方 |
| ・ | FPS(フレームパーセコンド)とは? |
| ・ | FPS(フレームパーセコンド)を計算する |
| ・ | フレームレートを変更する |
| ・ | 音に合せて映像の同期を取る |
| ・ | パソコンはデジタルで管理されている |
| ・ | 2進数と16進数について |
| ・ | 論理演算を使ってみよう |
| ・ | シフト演算を使ってみよう |
| ・ | 1つの変数を32個のフラグとして使おう |
| ・ | 1つの変数に複数の整数値を持たせよう |
| ・ | 角度とラジアン |
| ・ | 角度から2Dベクトルに変換する |
| ・ | 2Dベクトルから角度に変換する |
| ・ | 2つの角度の差を計算する |
| ・ | 2つの3Dベクトルから角度差を求める |
| ・ | 移動量と角度から x と y 軸方向の移動量を求める |
| ・ | 2つの座標から角度を求める |
| ・ | x方向とy方向の移動量から角度を求める |
| ・ | 直線で一定の速度で狙撃する動き |
| ・ | 直線で一定の速度で拡散した動き |
| ・ | ターゲットを追尾する動き |
| ・ | ターゲットを追尾する動き(加速付き) |
| ・ | 放物線で狙撃する動き(時間固定) |
| ・ | 放物線で狙撃する動き(角度固定) |
| ・ | 放物線で狙撃する動き(x方向のみ速度固定) |
| ・ | ベクトルとは? |
| ・ | ベクトルで座標を移動させよう |
| ・ | ベクトルで目的地まで移動させよう |
| ・ | ベクトルで移動制限を付けよう |
| ・ | 反射ベクトルと滑りベクトル |
| ・ | 行列を使ってできること |
| ・ | 行列を作成してみよう |
| ・ | 座標を変換してみよう |
| ・ | 変換成分をまとめてみよう |
| ・ | 好きな座標を中心に回転するには |
| ・ | 曲線を引くためには |
| ・ | 2次ベジェ曲線を描画する |
| ・ | 3次ベジェ曲線を描画する |
| ・ | N次ベジェ曲線を描画する |
| ・ | スプライン曲線を描画する |
| ・ | はじめに |
| ・ | ACT1:バーを動かしてみよう |
| ・ | ACT2:玉を動かしてみよう |
| ・ | ACT3:バーと玉と当たり判定をつけてみよう |
| ・ | ACT4:ブロックを配置してみよう |
| ・ | ACT5:玉とブロックと当たり判定をつけてみよう |
| ・ | ACT6:ゲームオーバーを付けてみよう |
| ・ | ACT7:ブロックが全部消えたかチェックしよう |
| ・ | ACT8:スコアをつけてみよう |
| ・ | ラスタースクロールについて |
| ・ | サインカーブで波打つビットマップ |
| ・ | サインカーブで伸縮するビットマップ |
| ・ | ドットを拡大してモザイクをかける |
| ・ | 前の画面を半透明にして重ねるブラー |
| ・ | 投影変換をかけたレースゲーム風の地面 |
| ・ | 「テトリス」のソース |
| ・ | 「BULLET STORM」のソース |
| ・ | 「SUPER KANON WORLD」のソース |
2D算術ライブラリ
| ・ | 2Dベクトルを作成する |
| ・ | 2Dベクトル同士を加算する |
| ・ | 2Dベクトル同士を減算する |
| ・ | 2Dベクトルを乗算する |
| ・ | 2Dベクトルの長さを求める |
| ・ | 2Dベクトル同士の内積を求める |
| ・ | 垂直な2Dベクトルを求める |
| ・ | 2Dベクトルを正規化する |
| ・ | ソースをダウンロード |
| ・ | 単位行列を作成する |
| ・ | 平行行列を作成する |
| ・ | 回転行列を作成する |
| ・ | 拡縮行列を作成する |
| ・ | 座標の射影変換 |
| ・ | ベクトルの射影変換 |
| ・ | マトリックスの射影変換 |
| ・ | 正規直交行列の逆行列を作成する |
| ・ | 逆行列を作成する |
| ・ | ソースをダウンロード |
3D算術ライブラリ
| ・ | 3Dベクトルを作成する |
| ・ | 3Dベクトル同士を加算する |
| ・ | 3Dベクトル同士を減算する |
| ・ | 3Dベクトルを乗算する |
| ・ | 3Dベクトルの長さを求める |
| ・ | 3Dベクトル同士の内積を求める |
| ・ | 3Dベクトル同士の外積を求める |
| ・ | 3Dベクトルを正規化する |
| ・ | ソースをダウンロード |
| ・ | 単位行列を作成する |
| ・ | 平行行列を作成する |
| ・ | X軸で回転する行列を作成する |
| ・ | Y軸で回転する行列を作成する |
| ・ | Z軸で回転する行列を作成する |
| ・ | 任意軸で回転する行列を作成する |
| ・ | 拡縮行列を作成する |
| ・ | 座標の射影変換 |
| ・ | ベクトルの射影変換 |
| ・ | マトリックスの射影変換 |
| ・ | 正規直交行列の逆行列を作成する |
| ・ | 逆行列を作成する |
| ・ | 行列を正規直交化する |
| ・ | ソースをダウンロード |
Javaと連動したFlash
ActionScript3.0 の解説はこちらへ
Flashゲームプログラミング講座 For ActionScript3.0
Flashゲームプログラミング講座 For ActionScript3.0
このページについて
■注意点
| ・ | 間違いや、より最適なプログラムがあるかも知れません。 |
| ・ | このサイトに関わる事で、如何なる問題、損害が発生しても、hakuhinは一切責任を負いません。100%利用者の自己責任とします。 |
■ActionScript について
| ・ | このページは主に ActionScript1.0 を元に解説しています。ActionScript2.0 でも動作します。 |
| ・ | 解説にバージョンの記述がある場合は、Flash5(ver5) , FlashMX(ver6) , FlashMX2004(ver7) , Flash8(ver8) , FlashCS3(ver9) , FlashCS4(ver10)以降のFlashを使用するかもしくは、パブリッシュ設定でそのバージョン以上で swf ファイルが書き出される様に選択する必要があります。 |
| ・ | FlashCS5 は、バージョン 11 に相当しますが、作成できるのは Flash 10 形式です。 |
| ・ | Fla6 以下のファイルを Flash CS4(ver10) で開くと読み込みに失敗する事があります。何度か読み込みを試みてください。 |
■サンプルファイルについて
| ・ | as1 という表記がある場合は、ActionScript1.0で組んでいます。as2 という表記がある場合は、ActionScript2.0で組んでいます。 |
| ・ | fla* という表記がある場合は、それ以上のバージョンの Flash から開く事が可能です。 |
| ・ | サンプルファイルは、素材として自由に使用する事ができます。転載や二次配布可能です。 |