Показать сообщение отдельно
Старый 10.08.2012, 22:18
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 1  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
По умолчанию Ошибка 1009 (ссылка на null объект или свойство). Не понимаю где

Только начинаю осваивать работу с классами, пакетами и для меня составляет огромную трудность знать какие адобовские-флешевские классы надо импортировать для всяческих действий. А также эти ошибки в выводе, которые не дают скомпилироваться, но зато не указывают на место ошибки.

У меня есть два класса. С ссылками тоже были проблемы, но сейчас все уже ок.
В одном классе вызывается другой, который называется Background. А хотя что я, покажу вам оба класса.

Вот класс MainInit

Код AS3:
package src.site
{
	import flash.display.MovieClip;
	import flash.display.DisplayObject;
 
	public class MainInit extends MovieClip
	{
 
		public function MainInit()
		{
			var back:Background = new Background();
			addChild(back);
		}
 
	}
 
}
А вот Background

Код AS1/AS2:
package src.site
{
	import flash.display.Graphics;
	import flash.display.Shape;
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.Stage;
 
	public class Background extends MovieClip
	{
 
		public function Background():void
		{
			var ground:Number = new Number();
			ground = stage.stageHeight;
			drawBuilding(1);
		}
		private function drawBuilding(type:Number)
		{
			var body:Graphics = this.graphics;
			switch (type)
			{
				case 1 :
					body.clear();
					body.beginFill(0);
					body.drawRect(0,0,180,400);
					body.endFill();
			}
		}
	}
}
Суть в том, что если рисовать в классе Background сразу в функции конструкторе(что не подходит из-за загромождения кода, хотелось бы рисовать с помощью функции) - то все работает. Все рисуется и отображается.

Но если рисовать с помощью дополнительной функции - ничего не рисуется и ошибка "TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"." словно указывает, что в классе Background "нифига не отрисовалось, приятель, и addChild-ить вообще-то нечего (в MainInit-е)".

И я научился этому из другого кода, но если body сделать вместо graphics shape-ом, то код
body.graphics.beginFill() (вместо сейчас стоящего body.beginFill()) не работает и говорит не к существующему свойству или функции обратился. Разве в шейпе или спрайте (он тоже такое выдает) нельзя графикой рисовать?