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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 25.04.2012, 15:58
A.E.M. вне форума Посмотреть профиль Отправить личное сообщение для A.E.M. Найти все сообщения от A.E.M.
  № 1  
A.E.M.
 
Аватар для A.E.M.

Регистрация: Jun 2007
Сообщений: 61
Отправить сообщение для A.E.M. с помощью ICQ
Question Не работает выражение

Код AS3:
package{
	import flash.display.MovieClip;
 
	public class Client extends MovieClip{
 
		public function Client(){
 
			var root:Composite = new Composite("root");
 
			root.add(new Composite("node 1"));
			root.getChild(1).add(new Leaf("leaf 1")); // при наличии вот этой строки появляется ошибка
 
		}
	}
}
ошибка в панели output
Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at Client()
__________________
Да будет ФЛЭШ !

Старый 25.04.2012, 15:59
bublic_bicubic вне форума Посмотреть профиль Отправить личное сообщение для bublic_bicubic Найти все сообщения от bublic_bicubic
  № 2  
bublic_bicubic
 
Аватар для bublic_bicubic

Регистрация: Mar 2010
Сообщений: 48
root.getChild(1) = null скорее всего

Старый 25.04.2012, 16:06
A.E.M. вне форума Посмотреть профиль Отправить личное сообщение для A.E.M. Найти все сообщения от A.E.M.
  № 3  
A.E.M.
 
Аватар для A.E.M.

Регистрация: Jun 2007
Сообщений: 61
Отправить сообщение для A.E.M. с помощью ICQ
Цитата:
Сообщение от bublic_bicubic Посмотреть сообщение
root.getChild(1) = null скорее всего
Да, действительно. Но не понятно почему.

Вот код Composite.as
Код AS3:
package{
 
	public class Composite extends Component{
 
		private var sName:String;
		private var aChildren:Array;
 
		public function Composite(sNodeName:String){
			this.sName = sNodeName;
			this.aChildren = new Array();
		}
 
		override public function add(c:Component):void{
			aChildren.push(c);
		}
 
		override public function operation():void{
			trace(this.sName);
			for each (var c:Component in aChildren){
				c.operation();
			}
		}
 
		override public function getChild(n:int):Component{
			if((n > 0) && (n < aChildren.length)){
				return aChildren[n-1];
			} else {
				return null;
			}
		}
	}
}
Добавлено через 10 минут
нашел, не
Код AS3:
override public function getChild(n:int):Component{
			if((n > 0) && (n < aChildren.length)){
, а
Код AS3:
override public function getChild(n:int):Component{
			if((n > 0) && (n < aChildren.length+1)){
__________________
Да будет ФЛЭШ !

Старый 25.04.2012, 17:32
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Название темы не отражает сути вопроса.
__________________
Reality.getBounds(this);

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 11:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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