Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.07.2009, 16:28
kaetano вне форума Посмотреть профиль Отправить личное сообщение для kaetano Найти все сообщения от kaetano
  № 1  
Ответить с цитированием
kaetano
 
Аватар для kaetano

Регистрация: May 2009
Сообщений: 134
По умолчанию Почему в контейнер не добавляются дети?

Есть класс, в котором создается контейнер conеBube, в который добавляются элементы 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() {
		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);
		}
	}
}
}

Старый 11.07.2009, 16:31
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 2  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
а сам контейнер добавлен на сцену?
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: May 2009
Сообщений: 134
Цитата:
Сообщение от cleptoman Посмотреть сообщение
а сам контейнер добавлен на сцену?
ага.
в конмтрукторе
Код AS3:
public function Pipe() {
		contBuble = new MovieClip;
		contBuble.width = this.width;
		contBuble.height = this.height;
		addChild(contBuble);
 
	}

Старый 11.07.2009, 16:57
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Интересно, что вы хотели сказать вот этими строчками?

Код AS3:
		contBuble.width = this.width;
		contBuble.height = this.height;

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
а мне кажется не очень он добавлен
contBuble = new MovieClip;
конструктор не так вызывается
contBuble = new MovieClip();
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 11.07.2009, 17:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
cleptoman, такая запись допустима. Хотя лично я бы руки поотрывал бы за отсутствие скобок.

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

Регистрация: May 2009
Сообщений: 134
Цитата:
Сообщение от __etc Посмотреть сообщение
Интересно, что вы хотели сказать вот этими строчками?

Код AS3:
		contBuble.width = this.width;
		contBuble.height = this.height;
Это я уже эсперементировала с размерами.... подумалось - вдруг из-за них....

За руки - согласна. упущение

Старый 11.07.2009, 17:28
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну как минимум вы нулевую ширину и высоту бабблу передаете.

Старый 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);
		}
	}
}
}

Старый 11.07.2009, 18:02
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Неудивительно, счетчик никто не сбрасывает.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:46.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.