トップ 差分 一覧 Farm ソース プレゼンテーション 検索 ヘルプ PDF RSS ログイン

ActionScript3.0

[コンピュータ,Flash]

重なり順の変更

//最前面表示
setChildIndex(mc, this.numChildren-1);
//最背面表示
setChildIndex(mc, 0);

表示リスト

//mc0をmc1に追加する
mc1.addChild(mc0);
//mc0をmc1から削除する
mc1.removeChild(mc0);

表示・非表示

//表示
mc.visible = true;
//非表示
mc.visible = false;

エラー

ReferenceError: Error #1065: 変数 TCMText は定義されていません。
原因
 同じ変数を2度宣言している。
 同じ変数の属性の定義を2度している。

ランダム(1〜100)

var mysteryNumber:uint;

mysteryNumber = Math.ceil(Math.random() * 100);

インプットテキスト

テキストのプロパティ
 テキストの名前 input
 クラッシックテキスト
 テキスト入力

input.text = ""; //初期値 空欄
input.backgroundColor = 0xCCCCCC; //背景色 白
input.restrict = "0-9"; //入力できる範囲 数字 ("0-9A-F" 16進数のカラー値)
stage.focus = input; //フォーカスを与える

配列の変数

// 配列の変数宣言
private var _collectionJar:Array;
public function Main_ArrayBasic()
{
 // 配列をインスタンス化
 _collectionJar = new Array();
 // 配列にエレメントを追加
 _collectionJar[0] = "犬";
 _collectionJar[1] = "さる";
 _collectionJar[2] = "きじ";
 // 配列の中身を出力
   trace("配列全体: " + _collectionJar);
 // 個々のエレメントを出力
   trace("要素 0:" + _collectionJar[0]);
   trace("要素 1: " + _collectionJar[1]);
   trace("要素 2::" + _collectionJar[2]);
 }

配列の変数 push

public function Main_ArrayPush()
 {
 // 配列をインスタンス化
 _collectionJar = new Array();
 // 配列にエレメントを追加
 _collectionJar.push("fly");
 _collectionJar.push("mosquito");
 _collectionJar.push("bee");
 // 配列の中身を出力
 trace("配列全体: " + _collectionJar);
 //Trace individual elements
 // 個々のエレメントを出力
 trace("エレメント 0: " + _collectionJar[0]);
 trace("エレメント 1:" + _collectionJar[1]);
 trace("エレメント 2: " + _collectionJar[2]);
 }

for

// 配列の中身を出力
for (var i:int = 0; i < _collectionJar.length; i++)
 {
  trace("要素 " + i + ":" + _collectionJar[i]);
 }

配列を検索

for (var i:int = 0; i < _collectionJar.length; i++)
 {
  if(_collectionJar[i] == "犬")
   {
   trace("犬は要素 " + i + "です");
   break;
   }
 }

オブジェクトをブロック

	static public function block(objectA:MovieClip, objectB:MovieClip):void
	{
		var objectA_Halfwidth:Number = objectA.width / 2;
		var objectA_Halfheight:Number = objectA.height / 2;
		var objectB_Halfwidth:Number = objectB.width / 2;
		var objectB_Halfheight:Number = objectB.height / 2;
		var dx:Number = objectB.x - objectA.x;
		var ox:Number = objectB_Halfwidth + objectA_Halfwidth - Math.abs(dx);
		if (ox > 0)
		{
			var dy:Number = objectA.y - objectB.y;
			var oy:Number = objectB_Halfheight + objectA_Halfheight - Math.abs(dy);
			if (oy > 0)
			{
				if (ox < oy)
				{
					if (dx < 0)
					{
						// 右での衝突
						oy = 0;
					}
					else
					{
						// 左での衝突
						ox *= -1;
						oy = 0;
					}
				}
				else
				{
					if (dy < 0)
					{
						// 上での衝突
						ox = 0;
						oy *= -1;
					}
					else
					{
						// 下での衝突
						ox = 0;
					}
				}
				
				// 計算したxとyの重なりを使って、 
				//objectAを衝突領域の外へ移動
				
				objectA.x += ox;
				objectA.y += oy;
			}
		}
	}

軸ベースの衝突を調べる trueかfalseを返す

	static public function test(objectA:Object,objectB:Object):Boolean
	{
		var objectA_Halfwidth=objectA.width/2;
		var objectA_Halfheight=objectA.height/2;
		var objectB_Halfwidth=objectB.width/2;
		var objectB_Halfheight=objectB.height/2;
		var dx=objectB.x-objectA.x;
		var ox=objectB_Halfwidth+objectA_Halfwidth-Math.abs(dx);
		if (0<ox)
		{
			var dy=objectA.y-objectB.y;
			var oy=objectB_Halfheight+objectA_Halfheight-Math.abs(dy);
			if (0<oy)
			{
				return true;
			}
		}
		else
		{
			return false;
		}
		return false;
	}