Показать сообщение отдельно
Старый 11.07.2009, 17:49
kaetano вне форума Посмотреть профиль Отправить личное сообщение для kaetano Найти все сообщения от kaetano
  № 9  
Ответить с цитированием
kaetano
 
Аватар для kaetano

Регистрация: May 2009
Сообщений: 134
Цитата:
Сообщение от __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);
		}
	}
}
}