Показать сообщение отдельно
Старый 20.09.2012, 09:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от fish_r Посмотреть сообщение
В первом приведенном вами примере вы обращаетесь к Майн до конца инициализации, а он в это время ещё равен null, то есть его фактически не существует. Инициализация объекта заканчивается тогда когда выполнится конструктор,и методы указанные в конструкторе ( а если в нем указана инициализация нижележащих объектов то и их конструкторы и методы указанные в них ). После этого можно обратиться уже к Майн, как к объекту.
однако небольшой эксперимент показывает, что это не так
Код AS3:
package
{
	import flash.display.Sprite;
 
	public class Main extends Sprite
	{
 
		public function Main():void
		{
			var timeScale:TimeScale = new TimeScale(this);
		}
 
		public function tracer():void
		{
			trace( "Main.tracer" );
 
		}
	}
 
}
import flash.display.Sprite;
 
class TimeScale extends Sprite
{
 
	public function TimeScale(main:Main)
	{
		graphics.beginFill(0xC0C0C0);
		graphics.drawRect(0, 0, 50, 50);
		main.addChild(this);
		main.tracer(); //Main.tracer
 
	}
}
в чем проблема у ТС не очень понятно
(ну не считая того, что так конечно не стоит делать)