![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 06.05.14]
|
Никогда не приходилось работать плотно с hitTest тем более в АС3. Поэтому хочется спросить у вас пару вещей
1. hitTestObject совершенно не понятно как работает. Вешаю на стейдж слушателя маусдавн и пишу эффекта ноль 2. hitTestPoint . тут же ситуация наоборот срабатывает всегда Вообщем поясните ситуацию, и как с этим работать. Почему возник такой вопрос. Ситуация такая. По нажатию на спрайт нужно его спрятать, и сделать определенное действие, а по нажатию на любое место сцены - только спрятать объект. Вот никак не могу это победить... |
|
|||||
|
Регистрация: Mar 2009
Адрес: this.x=0;this.y=0;this.z=0
Сообщений: 89
|
|
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
И зачем тут hitTest? Повесить MOUSE_DOWN на stage, и смотреть во target/currentTarget, по какому элементу "тыкнули"
__________________
Я просто добрый шутник. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Цитата:
__________________
Я просто добрый шутник. |
|
|||||
|
[+4 06.05.14]
|
Да криво написал вы правы. По нажатию на спрайт нужно его спрятать, и сделать определенное действие, а по нажатию на любое место сцены - только спрятать этот самый спрайт.
Добавлено через 8 минут решил хиттестпойнтом. всем спасибо |
|
|||||
|
Регистрация: Mar 2009
Адрес: this.x=0;this.y=0;this.z=0
Сообщений: 89
|
Либо у вас спрайт размером в стэйдж либо внимательнее смотрите к чему применяете hitTestPoint
|
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Цитата:
Main.as package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; /** * ... * @author Scarbo */ public class Main extends Sprite { private var _current:Square; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point _current = new Square(); _current.x = _current.y = 50; addChild(_current); stage.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDownHandler); } private function _mouseDownHandler(e:MouseEvent):void { if (e.target is Square) { _current.visible = false; }else { _current.visible = true; } } } } package { import flash.display.Graphics; import flash.display.Sprite; /** * ... * @author Scarbo */ public class Square extends Sprite { public function Square() { super(); this._draw(); } private function _draw(s:Number = 100, c:uint = 0xff0000):void { var g:Graphics = this.graphics; g.clear(); g.beginFill(c); g.drawRect(0, 0, s, s); g.endFill(); } } }
__________________
Я просто добрый шутник. |
|
|||||
|
[+4 06.05.14]
|
scarbo кстати спасибо. А вот именно за то, что я уже и забыл что Stage является так же контейнером.... и у него e.target не является Object Stage !!!!
Последний раз редактировалось in4core; 10.03.2011 в 23:34. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Цитата:
__________________
Я просто добрый шутник. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|