0
舞臺上放置了很多動畫片段嗎?現在我想使用拖放內部動畫片段來對齊它們。我希望在將所選動畫片段放置在該動畫片段下方時出現垂直對齊線條,如附加圖像中所示。如何在as3中捕捉閃存?
這裏是一個形象:
下面是代碼:
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip
{
private var obj:Rectangle1 = new Rectangle1();
private var obj1:Rectangle1 = new Rectangle1();
private var obj2:Rectangle1 = new Rectangle1();
private var obj3:Rectangle1=new Rectangle1();
public var Obj_Arr:Array = [];
private var p:VerticalLine;
public function Main()
{
obj.x=20;
obj.y=100;
addChild(obj);
obj1.buttonMode = true;
trace("init()")
obj.buttonMode=true;
obj1.x=150;
obj1.y=100;
addChild(obj1);
obj2.buttonMode=true;
obj2.x=280;
obj2.y=100;
addChild(obj2);
obj3.buttonMode=true;
obj3.x=430;
obj3.y=100;
addChild(obj3);
p = new VerticalLine();
addChild(p);
p.visible = false;
Obj_Arr.push(obj);
Obj_Arr.push(obj1);
Obj_Arr.push(obj2);
Obj_Arr.push(obj3);
for (var i:int = 0; i < Obj_Arr.length; i++)
{
Obj_Arr[i].index = i;
Obj_Arr[i].addEventListener(MouseEvent.MOUSE_DOWN, OnDown);
Obj_Arr[i].addEventListener(MouseEvent.MOUSE_UP, OnUp);
}
}
private function OnDown(e:MouseEvent):void
{
e.target.startDrag();
trace(e.target.index);
trace("remove...")
Obj_Arr.splice(e.target.index,1)
e.target.addEventListener(MouseEvent.MOUSE_MOVE, OnMove);
}
private function OnMove(e:MouseEvent):void
{
for (var i:int = 0; i < Obj_Arr.length; i++)
{
if(e.target.x==(Obj_Arr[i].x))
{
p.visible = true;
p.x = Obj_Arr[i].x;
p.y = Obj_Arr[i].y;
i = Obj_Arr.length;
}
else
{
p.visible =false;
}
}
}
private function OnUp(e:MouseEvent):void
{
p.visible =false;
e.target.stopDrag();
Obj_Arr.push(e.target);
for (var i:int = 0; i < Obj_Arr.length; i++)
{
if(e.target.index == (Obj_Arr[i].index))
{
trace("add...");
Obj_Arr[i].x = e.target.x;
Obj_Arr[i].index = i;
}
}
e.target.removeEventListener(MouseEvent.MOUSE_MOVE, OnMove);
}
}
}
但這碼心不是正常工作。
請幫忙!
在此先感謝。
@Marty Wallace:我在我的問題中解釋了我想說的。 – 2012-02-23 04:33:22
@Marty華萊士:我根據你的建議編輯了我的答案。 – 2012-02-23 04:50:07
謝謝,現在'+ 1'。 – Marty 2012-02-23 04:56:36