作者chairkay (木奇)
看板Flash
标题[问题] 如何替换舞台上的元件???
时间Sun Sep 6 22:27:31 2009
我想利用舞台左边元件mc_editpad中的btn_prehouse和btn_nexthouse
来更换已经加在舞台上的houseobj元件(house1_mc ~ house10_mc)
house1_mc ~ house10_mc是从元件库中汇出的(经由属性中的汇出给as使用)
然後再把house1_mc ~ house10_mc放到Array里面
但是以下小弟我所写的程式码只能无限的把house1_mc ~ house10_mc一一叫
至舞台上,却无法直接替换掉原本的元件(也就是舞台上永远只有一个元件可以移动
并且能够更换。到底怎麽做才能做到这种效果呢???
var houseArr:Array=new
Array(house1_mc,house2_mc,house3_mc,house4_mc,house5_mc,house6_mc,house7_mc,house8_mc,house9_mc,house10_mc);
var i = 0;
var j = 9;
trace(i);
changehouse(0);
mc_editpad.btn_nexthouse.addEventListener(MouseEvent.CLICK, changenext);
function changenext(Event:MouseEvent) {
if(i == j) {
i=0;
changehouse(i);
trace(i);
}
else {
i++;
changehouse(i);
trace(i);
}
}
mc_editpad.btn_prehouse.addEventListener(MouseEvent.CLICK, changepre);
function changepre(Event:MouseEvent) {
if(i == 0) {
i = 9;
changehouse(i);
trace(i);
}
else {
i--;
changehouse(i);
trace(i);
}
}
function changehouse (num:int):void {
var houseobj = new houseArr[i];
addChild(houseobj);
houseobj.width = houseobj.width * 0.7;
houseobj.height = houseobj.height * 0.7;
houseobj.x = 512;
houseobj.y = 374;
trace(houseobj.x , "," , houseobj.y);
houseobj.addEventListener(MouseEvent.MOUSE_DOWN, begindrag);
function begindrag(Event:MouseEvent):void {
houseobj.startDrag();
}
houseobj.addEventListener(MouseEvent.MOUSE_UP, enddrag);
function enddrag(Event:MouseEvent):void {
houseobj.stopDrag();
trace(houseobj.x , "," , houseobj.y);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.136.155.131