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

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

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
По умолчанию Cannot access a property or method of a null object reference.

Возникает ошибка TypeError: Error #1009: Cannot access a property or method of a null object reference.
В символе происходит анимация, на последнем кадре код
Код AS3:
gotoAndStop(1)
В первом кадре код
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_DOWN, playdyn)
function playdyn(event:KeyboardEvent){
	if (event.keyCode == 32) {
		if (Weapons.weapon == 2) {
			gotoAndPlay(1)
		}
	}
}
В классе Weapons ошибок нет, он уже используется много раз. Вырезал код функции, та же ошибка, стало быть ошибка именно в функции или прослушивателе. У функции уникальное название.
Кроме того, этот символ добавляется на сцену при определенном событии с помощью addChild. До написания вышеприведенного кода, все было относительно хорошо. Сейчас при добавлении символ просто стоит на первом кадре.
Помогите, пожалуйста!

Старый 03.06.2014, 17:21
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 2  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Проверьте значение свойства stage ( trace(stage); ), если оно будет равное null, то подпишитесь на событие добавление клипа на сцену ( Event.ADDED_TO_STAGE ) и уже в обработчике подписывайте stage по события клавиатуры.

Старый 03.06.2014, 17:25
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 3  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от LifeIsRhythm Посмотреть сообщение
Проверьте значение свойства stage ( trace(stage); ), если оно будет равное null, то подпишитесь на событие добавление клипа на сцену ( Event.ADDED_TO_STAGE ) и уже в обработчике подписывайте stage по события клавиатуры.
Вы имеете ввиду создать новый слушатель с данным событием и засунуть туда мой код?

Старый 03.06.2014, 17:26
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 4  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Да, только сначала проверьте.

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Я проверил, все так. Но после вписывания ошибка та же. Код:
Код AS3:
import flash.events.Event;
 
stage.addEventListener(Event.ADDED_TO_STAGE, added)
function added(event: Event) {
	stage.addEventListener(KeyboardEvent.KEY_DOWN, playdyn)
	function playdyn(event: KeyboardEvent) {
		if (event.keyCode == 32) {
			if (Weapons.weapon == 2) {
				gotoAndPlay(1)
			}
		}
	}
}

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
и засунуть туда мой код?
Только подписку на клавиатуру. Обработчик не надо.
Цитата:
stage.addEventListener(Event.ADDED_TO_STAGE, added)
Если бы был стейдж, не нужна была бы подписка О__о.
Не стейдж подписывайте, а this.
__________________
Reality.getBounds(this);

Старый 03.06.2014, 17:33
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 7  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Код AS3:
if(stage)init();
else super.addEventListener(Event.ADDED_TO_STAGE, init);
 
function init(event:Event = null):void
{
   // тут код...
}

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

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

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


 


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


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