ここに、オブジェクトの配列を作成する actionscript3 コードがあります。基本的に、配列には同じオブジェクトの複数のインスタンスがあります。オブジェクトを 90 度回転させる関数 f0 を呼び出すイベント リスナーを作成したいと考えています。私の問題は、配列内の各オブジェクトに一意の識別子を割り当てる方法が見つからないため、オブジェクトをクリックすると回転させたいのですが、配列の最初の要素のみが回転します。また、オブジェクトが (0,0) で回転しないように、回転を中央に配置したいと考えています。
package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.ColorTransform;
public class Main extends Sprite
{
var array = new Array();
var i:int;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
for (var i:int = 0; i < 10; i++)
{
var asd:Sprite = new Sprite();
asd.graphics.beginFill(0x0000ff);
asd.graphics.drawRect(0, 0, 60, 60);
array.push(asd);
addChild(array[i]);
array[i].x = 60 * i ;
array[i].y = 60 * i ;
array[i].addEventListener(MouseEvent.CLICK, f0);
if (i % 2 == 0) {
asd.graphics.lineTo(asd.x + 60, asd.y + 60);
}
removeEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function f0(e:Event):void
{
array[i].rotation += 90;
}
}
}