После пары дней попыток понял, что ничего не понял. Намерено не отображаю все попытки использования globalToLocal . Ну очень много текста. Упрощенный код проекта (там же и задача): Код | package{ import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import figura;
public class problem extends Sprite{ public var pF:figura; var i:uint=0;
public function problem(){ addChild(pBtnCreate); addEventListener("enterFrame",on_clk_btn_create);
} function on_clk_btn_create(event:Event){ if(pBtnCreate.flag_on){ removeEventListener("enterFrame",on_clk_btn_create);
for( i=0; i < pmap.mainPoint.length;i++){ pF = new figura(); addChild(pF); } } } }} //---------------------------------------------------------------------------- package{ import flash.geom.*;
public class figura extends Sprite{
public function figura(){ pX = 200; pY = 300; draw(); addEventListener("mouseDown",ClickDownButton); }
private function draw(x:uint,y:uint):void { graphics.beginFill(0xFF9966); graphics.drawRect(pX,pY, 60, 60); graphics.endFill(); [color=red] // Тут фигура рисуется правильно,по глобальным координатам[/color] }
function ClickDownButton(event:MouseEvent):void { removeEventListener("mouseDown",ClickDownButton); [color=red]//По клику мыши фигура должна переместится в точку x = 400,y = 10(глобальные)[/color] var dpX:int = 400; var dpY:int = 10; [color=red]// Попробовал так. [/color] var stagePoint:Point = new Point(dpX,dpY); var mypoint:Point = this.globalToLocal(stagePoint); this.x = mypoint.x; this.y = mypoint.y;
} }}
|
|