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

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

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

Регистрация: Sep 2011
Сообщений: 27
The bomb! проблема hittest'а в потомках

на сцене расположен mv1. внутри mv1 по нажатию на мышку должен появляться мувик hero, и когда у него завершится анимация - должна быть проверка на соприкосновение с мувиком pula, и если соприкосновение было - то подсвечиваются оба мувика..
на mv1 вешаю код:

Код AS3:
stop();
stage.addEventListener(MouseEvent.CLICK,dob);
function dob(e:MouseEvent):void{
var hero:Clip = new Clip();
addChild(hero);
addChild(pula);
hero.x=mouseX;
hero.y=mouseY;
pula.x=100;
pula.y=-100;
addChild(pula)
 
var he:MovieClip=hero
var pul:MovieClip=pula
 var bmp1:BitmapData;
var bmp2:BitmapData;
bmp1 = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0);  
bmp2 = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0);
 
addEventListener('ululu', action);
 
function action(event:MouseEvent):void
 {
 
  bmp1.fillRect(bmp1.rect, 0);
  bmp2.fillRect(bmp2.rect, 0);
  bmp1.draw(hero, new Matrix(1, 0, 0, 1, hero.x, hero.y));
  bmp2.draw(pula, new Matrix(1, 0, 0, 1, pula.x, pula.y));
  if(bmp1.hitTest(new Point(), 255, bmp2, new Point(), 255)){
   pula.filters = [new GlowFilter(0x000000)];
   hero.filters = [new GlowFilter(0xFF0000)];
  }else{
   hero.filters = [];
   pula.filters = [];
  }
  }
 }
в hero в конце анимации прописываю:
Код AS3:
var a = new Sprite();
a.dispatchEvent(new Event('ululu'));
но в итоге хиттест не обозначается...помогите пожалуйста..
P.S. если не сложно - с кодом =)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
У Вас новоиспеченный Спрайт не добавляется в дисплей-лист, соответственно нет цепочки для всплытия события, которое он диспатчит. А самому спрайту а Вы листенеры не добавляли. Ход оригинальный конечно; разве сам экземпляр Hero у Вас не способен посылать события? Это ведь МувиКлип, а значит наследник EventDispatcher.
__________________
Reality.getBounds(this);

Старый 24.09.2011, 14:08
oleg_tomenko вне форума Посмотреть профиль Отправить личное сообщение для oleg_tomenko Найти все сообщения от oleg_tomenko
  № 3  
Ответить с цитированием
oleg_tomenko

Регистрация: Feb 2010
Адрес: Донецк
Сообщений: 34
Слушатель вообще не срабатывает? Попробуйте так.

Код AS3:
dispatchEvent(new Event('ululu')); // диспатчить от имени самого клипа, а не от спрайта а
hero.addEventListener('ululu', action);
Ну и в слушатель вообще ивент надо передавать, а не маус ивент.

Старый 24.09.2011, 14:55
MAGISTRS вне форума Посмотреть профиль Отправить личное сообщение для MAGISTRS Найти все сообщения от MAGISTRS
  № 4  
Ответить с цитированием
MAGISTRS

Регистрация: Sep 2011
Сообщений: 27
oleg_tomenko, не получается..
Wolsh, как? можно чуть ближе к коду? новичок )
P.S. смотрел примеры различные, но все делают через package, а это, скажем так, не моя ситуация..

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

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

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


 


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


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