このたび技術評論社より,
初めのネタとして採上げるのはVectorクラスだ。第42回
Vectorクラスのおさらい
まず,
- Vectorクラスを使うための条件
- エレメントにひとつのデータ型を定める
- インデックスが連番になる
もうひとつ触れておきたいのは,
- new <ベース型>[エレメント0, エレメント1, …, エレメントN]
では,
- Vectorオブジェクト.push(エレメント0, エレメント1, …, エレメントN)
もっとも,
- Vector.<ベース型>([エレメント0, エレメント1, …, エレメントN])
引数に渡しているのは,
配列でキーコードとプロパティを扱った例
さて,
第15回スクリプト2は,
第15回スクリプト2 操作するプロパティを配列のキーコードのインデックスに定める
// MovieClip: キー操作で動かすインスタンス
var nMove:int = 1;
var nShiftMove:int = 10;
var keys_array:Array = new Array();
keys_array[Keyboard.LEFT] = ["x", -1];
keys_array[Keyboard.RIGHT] = ["x", 1];
keys_array[Keyboard.UP] = ["y", -1];
keys_array[Keyboard.DOWN] = ["y", 1];
stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);
function xKeyDown(eventObject:KeyboardEvent):void {
var nKeyCode:int = eventObject.keyCode;
var bShiftKey:Boolean = eventObject.shiftKey;
xMove(nKeyCode, bShiftKey);
}
function xMove(nKeyCode:int, bShiftKey:Boolean):void {
var key_array:Array = keys_array[nKeyCode];
if (key_array) {
this[key_array[0]] += key_array[1] * xGetPixels(bShiftKey);
}
}
function xGetPixels(bShiftKey:Boolean):int {
var nPixels:int = bShiftKey ? nShiftMove : nMove;
return nPixels;
}
このスクリプトは,
ところが,