У меня возникают проблемы с тем, чтобы событие MOUSE_OVER запускалось постоянно и по назначению. У меня есть собственный курсор (фрагмент ролика), прикрепленный к моей мыши, и он имеет 2 кадра (курсор первого кадра черный, а второй - белый).
Вот код из моего скрипта курсора:
private function onAddedToStage(event:Event):void
{
gotoAndStop(1);
this.mouseChildren = false;
this.mouseEnabled = false;
}
public function rollover():void
{
gotoAndStop(2);
trace("change cursor");
}
Вот класс объекта, который будет реагировать при наведении курсора на него:
public class DoorHS01 extends MovieClip
{
public var cursor:Cursor;
public function DoorHS01()
{
cursor = new Cursor();
this.addEventListener(MouseEvent.MOUSE_OVER, rollover);
}
public function rollover(e:MouseEvent):void
{
cursor.rollover();
trace("rollover");
}
}
}
Таким образом, в классе DoorHS01 событие MouseEvent не всегда срабатывает, иначе оно действительно будет отложено. Вызывается функция cursor.rollever, и она выполняется в классе курсора (я знаю по трассировкам), но курсор никогда не изменяется.
Что мне не хватает?
_hotSpotArr = [mc1, mc2]
, а затем просто проверить наличие столкновений в энтерфрейме, например:for (var i:Number = 0; i < _hotSpotArr.length; i++) { if (cursor.hitTestObject(_hotSpotArr[i])) { cursor.gotoAndStop(2); } else (cursor.hitTestObject(_hotSpotArr[1])) { cursor.gotoAndStop(1); } }
Но, похоже, это тоже не работает .. . - person Nick Lozano   schedule 23.02.2016cursor = new Cursor();
вместо неопределенногоthis.
, почему бы не добавить в него конкретныйcursor.addEventListener(MouseEvent.MOUSE_OVER, rollover);
, чтобы гарантировать, что вы обращаетесь к курсору? Вам не нужен код внутри самого клипа курсора (за исключениемstop();
на его кадре 1, чтобы остановить автоматическое воспроизведение). Наконец, в этой DoorHS01 вместоcursor.rollover()
просто сделайтеcursor.gotoAndStop(2);
.. это поможет? - person VC.One   schedule 23.02.2016share edit close flag
они могут отличаться для вас, ноedit
должны быть доступны. Щелкните по нему. - person null   schedule 24.02.2016