Цитата:
Сообщение от cleptoman
либо перебирать массив объектов под точкой курсора, пока не наткнетесь на свой интерфейсный объект)
|
Накладно выходит.
Добавлено через 42 секунды
Ну собствеено, просто не могу всё же привести к типу данных. Создаю класс(Буттонс) имплементирую его как (к примеру) ИмБуттон, в нём создаю объкт спрайт(он же и есть кнопка). как теперь указать что этот спрайт пренадлежит классу Буттонс? Т.е. как бы я не обращался к этому спрайту он мне всегда отвечал что он кнопка.
Добавлено через 17 минут

Код AS3:
// ****************************************
public class Horizontal extends Rect implements InScroll
{
// ..............
scroll = new RoundRect();
addChild(scroll);
// ..............
{
// ****************************************
public class Main extends Sprite
{
public function Main():void
{
// ..............
var scroll:Horizontal = new Horizontal(200, 6, 0x000099);
addChild(scroll);
// ..............
stage.addEventListener(MouseEvent.MOUSE_OVER, onMouse);
// ..............
}
private function onMouse(e:MouseEvent):void
{
trace(e.target);// [object RoundRect]
trace(e.target is InScroll && e.target is Horizontal); // false
trace(e.currentTarget is InScroll); // false
}
}
// ****************************************
// Вот пример.
Добавлено через 25 минут
Цитата:
Сообщение от Wolsh
Вы поместили слушатель в stage, поэтому MouseEvent#currentTarget будет ссылаться на объект Stage.
Источником События был спрайт, поэтому MouseEvent#target будет ссылаться на объект Sprite.
Объект класса EDMenu находится в stage и содержит в себе спрайт. Если этому объекту запретить mouseChildren, источником События станет он сам, и Вы сможете получить на него ссылку из MouseEvent#target. Иначе, и правильно, Вы должны были добавить слушателя объекту EDMenu, а не стейджу, и получать на него ссылку как MouseEvent#currentTarget. Впрочем, запрещать mouseChildren для подобных объектов - тоже правильная практика.
|
Вроде бы дошло. Получаеться, мне надо блокировать все объекты до нужного мне класса, тогда под точкой курсора все объекты будут ссылаться на этот класс, я правильно понял?
Добавлено через 58 минут

Код AS3:
// Собственно к чему я пришёл.
public class Main extends Sprite
{
private var scroll:Horizontal = new Horizontal(200, 6, 0x000099);
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
scroll.x = 20;
scroll.y = 20;
addChild(scroll);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouse);
stage.addEventListener(MouseEvent.MOUSE_UP, offMouse);
}
private function offMouse(e:MouseEvent):void
{
for (var i:int = 0; i < numChildren; i++)
{
if (scroll.act) { scroll.scrollStop(); }
}
}
private function onMouse(e:MouseEvent):void
{
if (e.target == scroll) { scroll.scrollMove(); }
}
}
// а хотелось задействовать интерфейс.
Добавлено через 1 час 1 минуту
Но это ппц как не правильно =(