作者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
推 cjcat2266:沒有"複製"這種功能可以用,你應該鑽研的方向是把一個物 12/30 20:07
→ cjcat2266:件的狀態(位置、大小、角度、影格等)讀取出來,新增一個 12/30 20:08
→ cjcat2266:同樣class的物件(new Leaf()),然後把這些狀態寫到這個 12/30 20:08
→ cjcat2266:新物件上 12/30 20:08
→ clarinet09:謝謝你!我再試試看! : ) 12/30 20:24