Просмотр полной версии : Двойной onMouseDown
Что за чудеса: при клике (НАЖАЛ и держу) - событие происходит дважды?
onMouseUp - та же ерунда...
var PINCursor = PATH.attachMovie("PIN","PINCursor", PATH.getNextHighestDepth(),{_x: _xmouse, _y: _ymouse} )
PINCursor.onMouseDown = function() {
trace( "mouseDown" )
}
PINCursor.onMouseUp = function() {
trace("onMouseUp")
};
Mouse.addListener(PINCursor);
Без этой строчки Mouse.addListener(PINCursor); тоже работает и событие происходит однажды.
Агаааа.... вот в чем дело.
То есть клип автоматом на мышь подписан, а я его еще раз туда же?
Этого я уже не знаю, ибо мои познания совсем не системные)
Ну и продолжим.......
Опять двоится ивент!
http://188.226.221.96/SOUNDSTAGE/stickers.swf
В ИДЕ - нрмально, в локальном ФП - нормально, в ХРОМЕ - нормально, в ФФ - двойной...
Особенности браузера????
Причем происходит однократно, при самом первом клике. Потом - нормально.... Что за.....
testlog.text = "init *** DoubleClick.as "+"\n"
var eventDispatcher:Object = new Object();
eventDispatcher.makeEvent = function( my_event, val ){ this.broadcastMessage( my_event, val ); }
AsBroadcaster.initialize( eventDispatcher );
var mouseListener:Object = new Object()
Mouse.addListener( mouseListener )
mouseListener.onMouseDown = function() {
testlog.text += ".onMouseDown"+"\n"
testlog.text += " getTimer(): "+getTimer()+" this.xTime: "+this.xTime+" DIFF: "+(getTimer()-this.xTime)+" FLAG: "+this.flag+ "\n"
if ( getTimer()-this.xTime<300 && this.flag ){
testlog.text +=" [][][] HAVE DOUBLE CLICK"+"\n"
eventDispatcher.makeEvent( "onDoubleClick" );
this.flag = false;
} else {
testlog.text +=" *** NO DOUBLE CLICK"+"\n"
this.xTime = getTimer()
this.flag = true;
}
}
mouseListener.xTime = getTimer()
mouseListener.flag = true
testlog.text += "iniTime: "+mouseListener.xTime+"\n"
iniTime: 519
.onMouseDown
getTimer(): 1674 this.xTime: 519 DIFF: 1155 FLAG: true
*** NO DOUBLE CLICK
.onMouseDown
getTimer(): 1677 this.xTime: 1675 DIFF: 2 FLAG: true
[][][] HAVE DOUBLE CLICK
То есть клип автоматом на мышь подписан, а я его еще раз туда же?
На мышь подписан автоматом, да, но более одного раза его не подпишешь.
Возможно, косяк плеера. Потестить к сожалению не в чем.
Не знаю, связано или нет, ловил вот такую штуку, решил костылем.
private function gem_touchBeganHandler(event:TouchEvent):void
{
var touch:Touch = event.getTouch(Context.starlingStage, TouchPhase.BEGAN);
if (!touch || touch == this._prevTouch)
return;
// trace("touch began", touch.target, "frame", i, "id", touch.id, "tapCount", touch.tapCount, this._prevTouch == touch);
// XXX костыль для FireFox, в одном карде при нажатии на объект диспатчися один и тот же тач дважды с фазой began
// XXX поэтому запоминаем предыдущий и сверяем с последующим, если тот же то выходим (player 18.0.0.194)
this._prevTouch = touch;
Нет. Тут уже вторая часть марлезонского балета.
В данном случае не клип подписан, а просто объект-слушатель.
В первом случае дабл был постоянный, а тут вот однократный.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.