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

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
Psycho Tiger
даю руку на отсечение, что на сцене! =]
Сам мышкой перетащил из библиотеки, и вкладывать его некуда он единственный мувик в флэшке.

dimarik
Не помогло

etc
а что значит "рутом повешен"?


...
В ходе дальнейших экспериментов, решил попробовать решить проблему через наследование, и нашел вот такую странную закономерность:

Создал fla файл, создал мувиклип Задал ему базовый класс (ну тот что в свойствах мувиклипа так назван, прошу меня не ругать опять за эту, совсем не мою выдумку):
Код AS3:
package classes
{
	import flash.display.MovieClip;
 
	public class R2Class extends MovieClip
	{
		public function R2Class():void
		{
			trace("r2 class called");
		}
	}
}
потом создал опять в другом пакете другой класс, расширяющий класс "R2Class" :
Код AS3:
package classes.assisted
{
	import classes.R2Class;
 
	public class AssistedClass extends R2Class
	{
		public function AssistedClass():void
		{
			trace("assistedClass called");			
		}
	}
}
ну и есть у меня еще и третий класс, который тоже привязан к мувиклипу (ну или мувиклип привязан к нему), который вызывает класс "AssistedClass" :
Код AS3:
package classes
{
	import flash.display.MovieClip;
	import classes.assisted.AssistedClass;
 
	public class R1Class extends MovieClip
	{
		var AC:AssistedClass = new AssistedClass();
 
		public function R1Class():void
		{
			trace("r1class called");				
		}
	}
}
и после компиляции, многоуважаемый компилятор пишет мне, что все пучком
Код:
r2 class called
assistedClass called
r1class called
r2 class called
Но если я в функции конструкторе класса "R2Class" пишу
Код AS3:
trace(stage.stageHeight);
То компилятор выдает мне:
Код:
r2 class called
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at classes::R2Class()
	at classes.assisted::AssistedClass()
	at classes::R1Class()
	at r1()
	at flash.display::Sprite/constructChildren()
	at flash.display::Sprite()
	at flash.display::MovieClip()
r2 class called
400
тобишь классы "R1Class" и соответственно "AssistedClass" не вызываються, и это меня порядком бесит >_<.
Почему такая несправедливость в мире ActionScript3.0 ?

Добавлено через 4 минуты
Вобще мне больше всего интересно как делаються профессиональные крупные проекты. Управляют ли там отдельные классы отображаемыми объектами полностью, или вспомогательные классы используються лишь для приема-возврата значений?

Я клоню к тому, что может я вобще порю ужасную ерись и все делаеться совсем не так?