基本理念。在我的拖放项目中,在舞台上,我有一堆珠宝(静态照片/动画片段),玩家可以在其中拖动小宝石,并将它们移动到中央窗口。我希望宝石影片剪辑 - 让我们称之为 jewel_mc ,它可以产生无限量的子剪辑,这些剪辑可以在舞台上移动。这里我需要一些帮助,从这里开始。 - 我是AS3新手。
调整功能 - 我需要的东西:所以当玩家从一堆jewels_mc点击“startdrag”时,鼠标光标上会出现一个小宝石,当玩家释放时,宝石会在最后一个位置掉落。玩家可以随心所欲地多次这样做,只要他们从堆叠珠宝堆栈开始拖拽。
你正在把一大堆珠宝推到盘子上!
非常感谢任何帮助,谢谢。 来自另一个可拖动的对象
jewel_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickuplittlejewel_mc);
littlejewel_mc.addEventListener(MouseEvent.MOUSE_UP, droplittlejewel_mc);
function pickuplittlejewel_mc(event:MouseEvent):void {
event.target.startDrag(true);
}
function droplittlejewel_mc(event:MouseEvent):void {
event.target.stopDrag();
}
我猜到了上面这个剧本,我不确定我的结果有多接近。 谢谢!
答案 0 :(得分:0)
我不知道我是否理解你,但我试着向你解释:
想象一下,你的图书馆里有一个Jewel MovieClip,然后用这个代码你可以创建无限的珠宝,然后拖放它们:
import flash.display.Sprite;
import flash.events.MouseEvent;
this.addEventListener(MouseEvent.MOUSE_DOWN, createJewel);
//---Global variable
var _jewel:Sprite;
//---Create jewel
function createJewel(evt:MouseEvent){
_jewel = new Jewel();
_jewel.x = evt.stageX;
_jewel.y = evt.stageY;
addChild(_jewel);
_jewel.startDrag(false);
_jewel.addEventListener(MouseEvent.MOUSE_DOWN, dragJewel);
stage.addEventListener(MouseEvent.MOUSE_UP, dropJewel);
}
//---Jewel start drag
function dragJewel(evt:MouseEvent){
//---Avoid the event propagate to the Stage
evt.stopPropagation();
_jewel = evt.currentTarget as Sprite;
_jewel.startDrag(false);
stage.addEventListener(MouseEvent.MOUSE_UP, dropJewel);
}
//---Drop jewel
function dropJewel(evt:MouseEvent){
stage.removeEventListener(MouseEvent.MOUSE_UP, dropJewel);
_jewel.stopDrag();
}
这里有一个闪光灯: