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

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

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

Регистрация: Jan 2010
Сообщений: 187
Question почему не двигается объект?

Я в главном классе создаю объект land.
А в другом классе хочу его как-то перемещать по экрану.
Объект создаётся, но почему-то не двигается.
Ошибку пишет такую:
Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Land/landMove()

Подскажите, где я ошибся?
Вот, классы выглядят так:

Код AS3:
package {
 
	import flash.display.*;
	import flash.events.*;
 
	public class Main extends MovieClip {
 
		public var land:Land;
 
		public function Main() {
 
			land = new Land();
			addChild(land);
		}
	}
}

Код AS3:
package {
 
	import flash.display.*;
	import flash.events.*;
 
	public class Land extends MovieClip {
 
	public var land:Land; 
 
		public function Land() {
 
			addEventListener(Event.ENTER_FRAME, landMove);
 
		}
 
		public function landMove(evt:Event):void {
			land.x+=1;
 
		}
	}
}

Старый 31.05.2010, 12:27
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Кэп сообщает, что переменная public var land:Land; из класса Land не определена, соответственно при попытке доступа к её внутренностям генерируется Error #1009

Старый 31.05.2010, 12:30
In8Finity вне форума Посмотреть профиль Отправить личное сообщение для In8Finity Найти все сообщения от In8Finity
  № 3  
Ответить с цитированием
In8Finity

Регистрация: Jan 2010
Сообщений: 187
Я только в самом начале изучения AS3.
Поэтому, понимаю, вопросы и ситуации у меня дурацкие.
Но вот разве вот здесь...
Код AS3:
public var land:Land;
...она не определяется?

Старый 31.05.2010, 12:42
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 4  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Скажем вы определили тип свойства land и зарезервировали для него место в оперативной памяти. Но надо еще, непосредственно создать объект, для этого нужно написать:

Код AS3:
land=new Land();
Однако мне кажется что в Вашем случае свойство land вообще не нужно, а надо просто писать:

Код AS3:
x+=1;
__________________
ranga

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Переменная определяется тогда, когда ей присваивается значение.
Код AS3:
public var x:Number; 
// тут вы создали переменную. 
// У нее нет никакого значения
// или есть значение-по-умолчанию
 
x = 10;
// тут вы присвоили значение
// переменная определена, т.к. имеет зачение
Напишите не land.x += 1, а this.x += 1.
__________________
...вселенская грусть

Старый 31.05.2010, 13:22
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Тут неплохо бы рассказать про primitive (prime) data types и complex data types, чтоб знать, хотя бы, когда = копирует, а когда заставляет ссылаться на тот же обьект, когда "нет никакого значения", а когда "есть значение по умолчанию". Да, прошлое предложение сформулировано криво. В вики что-то есть, но не всё или непонятно написано.
http://en.wikipedia.org/wiki/ActionS...ata_structures
ну т.е. понять, почему код ниже выводит то, что выводит)
Код AS3:
var a:Number = 1;
var b:Number = a;
a = 2;
trace(b);//1
var l1:Sprite= new Sprite();
var l2:Sprite = l1;
l2.x = 1;
l1.x = 2;
trace(l2.x);//2

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

Регистрация: May 2010
Адрес: Киев
Сообщений: 62
У меня есть вопрос, не много затрагивающий данную тему. Опишу Вам ситуацию на базе данного примера. Допустим я создал 2 объекта land и land2. Как только запускается программа объект land начинается двигаться, т.к.

Код AS3:
land.x+1;
С помощью таймера я, через некоторое время, хочу запустить объект land2, причем чтобы движения 1 не зависели от движения 2.
Каким образом мне это сделать?

Старый 01.06.2010, 23:12
elcard вне форума Посмотреть профиль Отправить личное сообщение для elcard Найти все сообщения от elcard
  № 8  
Ответить с цитированием
elcard

Регистрация: Jan 2009
Сообщений: 51
Сам новичек, но предположу, что стоит смотреть в сторону Timer();

Старый 01.06.2010, 23:38
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Да, "С помощью таймера" - это хороший ответ, считаю %)
Там вообще-то надо умудриться, чтоб они зависели. А если всё-таки будут зависеть, то советую сменить дилера!

Старый 02.06.2010, 00:30
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Глум, там super.x, скорее =) Знаю, что высосано из пальца - но всё же)

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

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

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


 


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


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