作者clarinet09 (小不点)
看板Flash
标题[问题] AS3 元件的复制
时间Wed Dec 30 19:55:36 2009
请问一下各位大大...
如何在按下一个元件的时候可以同时复制出一个一样的元件,
让这个被复制出来的元件可以拖曳和缩放?
原来的元件固定在原来的地方不动?
我现在做出来的变成按A会复制出A1,按A1会复制出A2...
跟本来想的按A复制出A1,再按A复制出A2不一样...
以下是原始码,标示黄色的部分,是我觉得有问题的地方,可是又不知道要怎麽改...> <
原始档
http://0rz.tw/hp6dU
var startX:int;
var startY:int;
var mc:MovieClip;
var objs:Sprite=new Sprite();
this.addChild(objs);
objs.addChild(obj1);
objs.addChild(obj2);
objs.addChild(obj3);
objs.addEventListener(MouseEvent.MOUSE_DOWN,doDrag);
objs.addEventListener(MouseEvent.MOUSE_UP,doDrop);
enlarge.addEventListener(MouseEvent.MOUSE_DOWN,large);
reduce.addEventListener(MouseEvent.MOUSE_DOWN,small);
function doDrag(e:MouseEvent):void {
mc = e.target as MovieClip;
startX = mc.x;
startY = mc.y;
var item:MovieClip;
if (obj1==mc) {
item=new leaf();
item.x=obj1.x;
item.y=obj1.y;
addChild(item);
}
mc.startDrag(true);
}
function doDrop(e:MouseEvent):void {
mc = e.target as MovieClip;
mc.stopDrag();
}
function large(e:MouseEvent) {
if (mc!=null) {
mc.scaleX += 0.1;
mc.scaleY = mc.scaleX;
}
}
function small(e:MouseEvent) {
if (mc!=null) {
mc.scaleX -= 0.1;
mc.scaleY = mc.scaleX;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.181.170
1F:推 cjcat2266:没有"复制"这种功能可以用,你应该钻研的方向是把一个物 12/30 20:07
2F:→ cjcat2266:件的状态(位置、大小、角度、影格等)读取出来,新增一个 12/30 20:08
3F:→ cjcat2266:同样class的物件(new Leaf()),然後把这些状态写到这个 12/30 20:08
4F:→ cjcat2266:新物件上 12/30 20:08
5F:→ clarinet09:谢谢你!我再试试看! : ) 12/30 20:24