2009-12-17 3 views
0

Каков эквивалент этого кода AS3 в AS2?Эквивалент события.MOUSE_LEAVE в AS2

stage.addEventListener(Event.MOUSE_LEAVE, callbackFunc); 

private function callbackFunc(e:Event):void { 
    // do something 
} 
+0

Я огляделся, и все, похоже, полагались на оценку предыдущего движения курсора, чтобы определить, покинули бы его сцену, используя событие ввода кадра, но это и ненадежно, и эффективность влияет. Такие вещи радуют меня, что я только вошел в Flash с AS3 :) – Aaron

ответ

1

Я боролся с этим на некоторое время, и в конечном итоге с помощью слушателей событий JavaScript на объекте Flash HTML, а затем связывание во внешнем интерфейсе Flash для установки флагов, когда происходят события мыши и события. Это кажется безупречным без ошибок.

1

Сначала я думал, что это был просто rollout-

stage.onRollOut = function(){ 
    //the action could occur here 
} 

Это, кажется, не работает должным образом ... но потом снова; вы можете определить сцену как MovieClip(). AS2 немного неуклюж, когда дело доходит до такого рода вещей. Я думаю, что большинство решений будут хаками. Я, конечно же, любил, насколько это было проще. :)

+0

Это не сработало печально, потому что, чтобы определить, уходит ли мышь, MC нужно будет заняться всей стадией ... если это займет весь этап, событие никогда не срабатывает, потому что, когда мышь выходит из сцены, Flash все еще только знает о своей последней позиции на сцене. – Aaron

+0

Суть этой проблемы раскрывается в ее реализации в AS3, поскольку событие STAGE_LEAVE относится к классу Event, а не к классу MouseEvent. – Aaron

+0

К сожалению, даже при обработке сцены событие не работает. По крайней мере, не для меня: P – Aaron

1

Вы можете проверить _xmouse собственности, чтобы увидеть, если мышь не в клипе

_root.onMouseMove = function() 
{ 
    if(
     _xmouse <= 0 || 
     _ymouse <= 0 || 
     _xmouse >= Stage.width - 1 || 
     _ymouse >= Stage.height - 1 
    ) 
    outCallBack(); 
} 

function outCallback() 
{ 
    bla; 
} 
+0

Это требует, чтобы пользователь щелкал за пределами окна, иначе, когда мышь покидает сцену, она не обновляет положение мыши за пределами границы проигрывателя, хотя это, вероятно, самое близкое к достижению этого вопроса. – Aaron