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

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

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

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
По умолчанию MouseEvent ссылка на объект

Добрый день друзья, столкнулся с такой проблемой. требуется ваша помощь.
установил слушатель MouseEvent.CLICK в функции mouseClickHandler отлавливаю событие.
на сцене у меня находится танк я по нему счелкую и трейсю trace(event.target);
получаю сообщение о том что я кликаю по объекту [object Tank_mc]. и вот вопрос как мне обратиться к функциям и методам данного объекта? Tank_mc это мувик из библиотека, инициализировал его класс EnemyTank.

Старый 08.11.2017, 10:56
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Код AS3:
var tank:EnemyTank=e.target as EnemyTank;
if(tank)
    tank.tankMethod();

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Если подписан на клик EnemyTank, то
Код AS3:
var tank:EnemyTank = e.currentTarget as EnemyTank;
if(tank)
    tank.tankMethod();
__________________
There is no thing in this world that is not simple.

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

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
Цитата:
Сообщение от undefined Посмотреть сообщение
Код AS3:
var tank:EnemyTank=e.target as EnemyTank;
if(tank)
    tank.tankMethod();
trace(tank) выдает null

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
лол, а на что у вас слушатель CLICK повешен?
__________________
There is no thing in this world that is not simple.

Старый 08.11.2017, 12:18
razerw вне форума Посмотреть профиль Отправить личное сообщение для razerw Найти все сообщения от razerw
  № 6  
Ответить с цитированием
razerw

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
лол, а на что у вас слушатель CLICK повешен?
ну вообще есть класс Game данный класс создает объект EnemyTank
как раз в классе Game и инициализаруется слушатель CLICK

Добавлено через 1 минуту
я знаю что можно понапихать MouseEvent.CLICK в сами объекты EnemyTank и они будут выдавать то что мне нужно, но если у меня будет 20 танков, это будет расточительство, поэтому я и инициализирую 1 слушатель в главном классе

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

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
если EnemyTank ребенок Game, то главное - не забыть EnemyTank поставить mouseChildren = false;
попробуйте все потрейсить да посмотреть, что там как

Код AS3:
trace(event.target)
var tank:EnemyTank = event.target as EnemyTank;
trace(tank)
if(tank)
    tank.tankMethod();
__________________
while(live()) { hope(); }

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

Регистрация: Oct 2006
Сообщений: 2,281
А у Tank_mc в linkage id стоит EnemyTank или EnemyTank создает new Tank_mc(); и добавляет в себя?

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

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
или может быть Tank_mc это linkage и EnemyTank extends Tank_mc.. ?
__________________
while(live()) { hope(); }

Старый 08.11.2017, 12:45
razerw вне форума Посмотреть профиль Отправить личное сообщение для razerw Найти все сообщения от razerw
  № 10  
Ответить с цитированием
razerw

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
Цитата:
Сообщение от undefined Посмотреть сообщение
А у Tank_mc в linkage id стоит EnemyTank или EnemyTank создает new Tank_mc(); и добавляет в себя?
совершенно верно

Добавлено через 2 минуты
Цитата:
Сообщение от ZergMaster Посмотреть сообщение
или может быть Tank_mc это linkage и EnemyTank extends Tank_mc.. ?
Tank_mc это мувик находится в библиотеке. EnemyTank делает вот так _sprite = new Tank_mc(); а потом add

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

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

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


 


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


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