![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2009
Сообщений: 134
|
Есть класс, в котором создается контейнер conеBube, в который добавляются элементы Buble. И не работает - не отображаются элементы. Если убрать контейнер, и просто добавлять в класс - то все работает.
Вот код: 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() { contBuble = new MovieClip; contBuble.width = this.width; contBuble.height = this.height; 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); } } } } |
|
|||||
|
а сам контейнер добавлен на сцену?
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: May 2009
Сообщений: 134
|
ага.
в конмтрукторе |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Интересно, что вы хотели сказать вот этими строчками?
|
|
|||||
|
а мне кажется не очень он добавлен
contBuble = new MovieClip; конструктор не так вызывается contBuble = new MovieClip();
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
cleptoman, такая запись допустима. Хотя лично я бы руки поотрывал бы за отсутствие скобок.
|
|
|||||
|
Регистрация: May 2009
Сообщений: 134
|
Цитата:
За руки - согласна. упущение |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну как минимум вы нулевую ширину и высоту бабблу передаете.
|
|
|||||
|
Регистрация: May 2009
Сообщений: 134
|
Да, видимо в этом дело.
но теперь при новом вызове ф-ии setMoving не отображаются элементы Buble. Т.е. один раз показываются, потом один раз удалаются и все. Немного измененный код: 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); } } } } |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Неудивительно, счетчик никто не сбрасывает.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:38. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|