Цитата:
Сообщение от __etc
Ну как минимум вы нулевую ширину и высоту бабблу передаете.
|
Да, видимо в этом дело.
но теперь при новом вызове ф-ии setMoving не отображаются элементы Buble.
Т.е. один раз показываются, потом один раз удалаются и все.
Немного измененный код:

Код AS3:
package src{
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
public class Pipe extends MovieClip{;
var COUNT_BUBLES:int;//Общее кол-во шариков на трубу
var intBubles:Number=10;//Интервал между шариками
private var intervalID:uint;//Для шариков
private var intervalID2:uint;//Для заливки
private var count:int;//счетчик для создаваемыз шариков
private var delay:Number;
private var bub1:Buble;
public var sh:Shape;
var myDate = new Date();
public var contBuble:MovieClip;
public function Pipe() {
clearInterval(intervalID);
contBuble = new MovieClip();
addChild(contBuble);
}
public function deleteMoving() {
while (contBuble.numChildren) contBuble.removeChildAt(0);
}
public function setMoving() {
COUNT_BUBLES=int(this.width*2/intBubles);
if (COUNT_BUBLES<=1) {
COUNT_BUBLES=1;
}
//С определенной периодичностью вызываем ф-ю, создающую шарики
delay=int(250);
intervalID=setInterval(createBubles,delay);
}
//Создаем шарики
private function createBubles() {
count++;
var curX=0;
var curY=this.height/2+Math.random();
if (count<COUNT_BUBLES) {
contBuble.addChild(new Buble(curX,curY,this.width,this.height,intBubles));
} else if (count == COUNT_BUBLES) {
clearInterval(intervalID);
}
}
private function fillWater() {
if (sh.width<=this.width-2) {
sh.width+=intBubles;
} else if (sh.width>=this.width-2) {
clearInterval(intervalID2);
}
}
}
}