Есть много видеороликов на сцене?Теперь я хочу выровнять их с помощью перетаскивания внутри фрагментов ролика. Я хочу, чтобы при размещении выбранного фрагмента ролика под этим фрагментом клипа появлялась вертикальная линия выравнивания, как показано на прикрепленном изображении.
Вот изображение:
Вот код:
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);
}
}
}
Но этот код работает неправильно.
Пожалуйста, помогите!
Заранее спасибо.