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

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

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

Регистрация: Jul 2010
Сообщений: 5
По умолчанию Проблема с addEventListener

Здравствуйте! Я только начал изучать As3 и у меня возникла проблема. Облазил кучу форумов, официальный сайт Адоба, но так и не смог исправить свою ошибку...
Работаю в FlashVedeloper. Сделал mxml файл. Подключил туда флешку с изображением лыжника(id="lijnik"). Через creationComplete запускаю функцию key_down, которая должна отслеживать нажатие клавиш. Если клавиша нажата, то лыжник должен переместиться на кординату x=500. Но почему- то ничего не происходит... Сижу уже который час и ничего не могу сделать. Подскажите пожалуйста.
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="key_down()" layout="absolute" width="1010" height="425" backgroundColor="green" xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:SWFLoader id="lijnik" source="123.swf" x="100" y="100" width="40%" height="40%"/>
    <mx:Script>
	import mx.formatters.StringFormatter;
	import flash.display.Stage;
	import flash.events.*;
 
	public function lijnik_go(event:KeyboardEvent):void
	{
 
		lijnik.x=500;
 
	}
	public function key_down():void 
	{
		stage.addEventListener(KeyboardEvent.KEY_DOWN, lijnik_go);
	}
    </mx:Script>
    <mx:Label id="label_1" text="LABEL" x="101" y="50" width="37" height="18"/>
</mx:Application>

Старый 03.07.2010, 19:34
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Скорее всего stage еще не доступен в creationComplete, попробуйте applicationComplete. Ну и естесственно поставьте дебаг плеер. А вообще за подчерки в названиях функций и транслит в переменных вас будут сильно нелюбить.
__________________
Hell is the possibility of sanity

Старый 03.07.2010, 20:56
alexberkut вне форума Посмотреть профиль Отправить личное сообщение для alexberkut Найти все сообщения от alexberkut
  № 3  
Ответить с цитированием
alexberkut

Регистрация: Jun 2010
Адрес: Беларусь, Гродно
Сообщений: 58
На creation_complete уже stage есть. так что все нормально.

А попробуй добавить ивент листенер ещё и на SWFLoader, может он перехватывает события с клавиатуры?...

Кстати, скрипт лучше окружай в
<![CDATA[
...
]]>

потом проблем не будет если какие нибудь XML символы будешь писать.

Старый 03.07.2010, 21:25
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Откуда такая уверенность?

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx">
	<s:creationComplete>
		trace(super.stage); // null
	</s:creationComplete>
	<s:applicationComplete>
		<![CDATA[
		trace(super.stage); // [object Stage]
		]]>
	</s:applicationComplete>
</s:Application>
__________________
Hell is the possibility of sanity

Старый 03.07.2010, 21:39
alexberkut вне форума Посмотреть профиль Отправить личное сообщение для alexberkut Найти все сообщения от alexberkut
  № 5  
Ответить с цитированием
alexberkut

Регистрация: Jun 2010
Адрес: Беларусь, Гродно
Сообщений: 58
Если так как пишешь ты, то
stage.addEventListener(KeyboardEvent.KEY_DOWN, lijnik_go);
упадёт с NPE.

@11sD в дебаге были ошибки?

Старый 03.07.2010, 22:06
11sD вне форума Посмотреть профиль Отправить личное сообщение для 11sD Найти все сообщения от 11sD
  № 6  
Ответить с цитированием
11sD

Регистрация: Jul 2010
Сообщений: 5
Не знал про дебагер, извиняюсь Вот ошибочки:

Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at BattleWindow/key_down()
at BattleWindow/___BattleWindow_Application1_creationComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()
at mx.core::UIComponent/set initialized()
at mx.managers::LayoutManager/doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()
at mx.core::UIComponent/callLaterDispatcher()

Старый 03.07.2010, 22:14
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну так нет стейджа еще, applicationComplete нужен, а не creationComplete.
__________________
Hell is the possibility of sanity

Старый 03.07.2010, 22:22
11sD вне форума Посмотреть профиль Отправить личное сообщение для 11sD Найти все сообщения от 11sD
  № 8  
Ответить с цитированием
11sD

Регистрация: Jul 2010
Сообщений: 5
Ну да, всё правильно. applicationComplete помог. Спасибо)

Старый 03.07.2010, 22:22
alexberkut вне форума Посмотреть профиль Отправить личное сообщение для alexberkut Найти все сообщения от alexberkut
  № 9  
Ответить с цитированием
alexberkut

Регистрация: Jun 2010
Адрес: Беларусь, Гродно
Сообщений: 58
во-во

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

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

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


 


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


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