Просмотр полной версии : Удаление клипов
Доброе время суток !
Подскажите плиз как рендомно удалить клип.
То есть на сцене есть допустим 10 рэндомно аттачиных клипов.
По клику мыши onMouseDown аттачится еще один клип...
Нужно в этот момент удалить другой клип.
Вобщем по принципу: один появился, другой исчез...
Заранее благодарен Всем откликнувшимся...
this.create
08.05.2007, 02:50
Поместите ссылки на все мувики в массив, при аттаче нового мувика добавляйте ссылку на него в массив, затем удаляйте мувиклип ссылка на который хранится в первом элементе массива, после удаляйте первый элемент массива со сдвигом.
var ar:Array=['a','b','c']
ar.push('d')
ar.shift()
trace(ar)
Если хотите удалить случайный элемент массива( shift удаляет первый), то, пожалуйста, метод splice
var ar:Array = ['a', 'b', 'c'];
var a:Number = 1;
ar.push('d');
ar.splice(a, 1);
trace(ar);
, где а случайное число, но не больше длины массива -1.
не получается ...
я правда немного не так написал..
вот код...
var nebo:Array =["st1","st2","st3","st4","st5","st6","st7","st8","st9","st10"];
for(i=0;i<10;i++){
attachMovie("st","st"+i, i,{_x:1+Math.random()*500,_y:1+Math.random()*400})
nebo[i]=this["st"+i];
}
onMouseDown=function(){
nebo.push("st"+i);
attachMovie("st","st"+i,++i,{_x:1+Math.random()*500,_y:1+Math.random()*400})
_root["st"+i].gotoAndStop (Math.round(Math.random()*2));
nebo.shift(0);
trace(["st"+i]);
}
this.create
08.05.2007, 03:36
var nebo:Array = [];
for (i=0; i<10; i++) {
attachMovie("st", "st"+i, i, {_x:1+Math.random()*500, _y:1+Math.random()*400});
nebo[i] = this["st"+i];
}
trace(nebo);
onMouseDown = function () {
nebo.push(this["st"+i]);
attachMovie("st", "st"+i, ++i, {_x:1+Math.random()*500, _y:1+Math.random()*400});
_root["st"+i].gotoAndStop(Math.round(Math.random()*2));
nebo[0].removeMovieClip();
nebo.shift();
trace(["st"+i]);
};
Но что-то код ваш мне не очень нравится...
Вот мой вариант, но получилось достаточно сложно. И проверить как следует не успел (уже спать хочу), так что на ваш страх и риск используйте.var nebo:Array = [];
for (i=0; i<10; i++) {
var mc:MovieClip = this.attachMovie("st", "st"+i, this.getNextHighestDepth(), {_x:1+Math.random()*500, _y:1+Math.random()*400});
nebo[i] = mc;
mc.onPress = function():Void {
pressFc();
};
}
var count:Number = i;
//
function pressFc():Void {
count == 100 ? count=0 : count++;
var mc:MovieClip = this.attachMovie("st", "st"+count, this.getNextHighestDepth(), {_x:1+Math.random()*500, _y:1+Math.random()*400});
mc.onPress = function():Void {
pressFc();
};
nebo.push(mc);
this.gotoAndStop(Math.round(Math.random()*2));
nebo[0].removeMovieClip();
nebo.shift();
}
Да, но видимо нужно кликать на сцену, а не на клипы, потому надо mouseDown, а не onPress.
2автор Неработало потому что вы сначала пытались в массив запехать ссылку на клип, а потом уже клип создавали.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.