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

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

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

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Почему не происходит вызов функции?

Добрый день!
Я видимо чё-то не то съел, но не пойму, в чём проблема

Код AS3:
package object
{
	import flash.display.Sprite;
	import flash.events.Event;
	import nape.phys.Body;
 
	public class ControLocation extends Sprite
	{
		private var body:Body;
		public function ControLocation(_body:Body)
		{
			body = _body;
			if (stage)
				init();
			else
				addEventListener(Event.ADDED_TO_STAGE, init); //до сюда, после создания экземпляра класса доходит, если добавить в след строку trace(999), то увидим вывод
		}
 
		private function init(e:Event = null):void
		{
			trace(123);//а этот корд не выполняется, т.е. даже trace не выводится
			removeEventListener(Event.ADDED_TO_STAGE, init);
			addEventListener(Event.ENTER_FRAME, location);
		}
 
		private function location(e:Event):void
		{
			if (body.position.x < stage.stageWidth * 0.02)
			{
				body.position.x = stage.stageWidth * 0.98 - 1;
			}
			if (body.position.x > stage.stageWidth * 0.98)
			{
				body.position.x = stage.stageWidth * 0.02 + 1;
			}
			if (body.position.y < stage.stageHeight * 0.17)
			{
				body.position.y = stage.stageHeight * 0.972 - 1;
			}
			if (body.position.y > stage.stageHeight * 0.972)
			{
				body.position.y = stage.stageHeight * 0.17 + 1;
			}
		}
	}
}
ни на что не ругается

Старый 19.06.2015, 20:26
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Скопировал/вставил - работает!
Может вы не добавили экземпляр этого класса на экран?

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

Регистрация: Jun 2014
Сообщений: 558
samana Заработало!
т.е. если я удалю экземпляр класса со сцены, то слушатели отключаться?
А я и не знал, что слушатель начнёт работать, только после добавления экземпляра на экран. Хм, а это решает несколько проблем, о которых я начал уже думать в дальнейшей разработке игры.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
addEventListener(Event.ADDED_TO_STAGE, init) вам ни на что не намекает?)
Там написано, что сработает метод init как только сцена станет доступной. А доступна она автоматически только после добавления в дисплейЛист)

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

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

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


 


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


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