мда... в три часа ночи я начинаю городить огород
вот универсальный способ:

Код:
// ----- Global DoubleClick Event -----
Mouse.isDouble = function() {
if (!Mouse.clickFlag) {
if (!Mouse.clickTimeout) {
Mouse.clickTimeout = 300;
}
Mouse.clickFlag = setInterval(Mouse.cancelDouble, Mouse.clickTimeout);
} else {
Mouse.broadcastMessage("onDoubleClick");
Mouse.cancelDouble();
}
};
Mouse.cancelDouble = function() {
if (Mouse.clickFlag) {
clearInterval(Mouse.clickFlag);
delete Mouse.clickFlag;
}
};
ASBroadcaster.initialize(Mouse);
Mouse.doubleListener = {onMouseMove:Mouse.cancelDouble, onMouseDown:Mouse.isDouble};
Mouse.addListener(Mouse.doubleListener);
// -------------------------------------
//
// method for registering doubleclick-on-item event of Listbox
FListBoxClass.prototype.setItemDblClick = function(action) {
this.onDoubleClick = function() {
var right = this.hitTest(_root._xmouse, _root._ymouse);
var wrong = this.container.scrollBar_mc.hitTest(_root._xmouse, _root._ymouse);
if (right && !wrong) {
action(arguments);
}
};
Mouse.addListener(this);
};
// -------------------------------------
//
// example:
// setting time threshold between two successive clicks
Mouse.clickTimeout = 200;
// some function - just for example
doubleClick = function () {
trace((lst.getSelectedItem()).label);
trace("And He said: 'Let there be light'");
trace("...and there was light !");
};
// registering dblclick action
lst.setItemDblClick(doubleClick);
©
скрипт огороженный комментарием "Global DoubleClick Event" регистрирует новое событие мышки: onDoubleClick.
добавляем этот код в начало мувика, а потом в любом месте пишем:
любой_объект.onDoubleClick = function () {.......};
Mouse.addListener(любой_объект);
– и это будет действовать как любое из стандартных событий.
дальше добавляем в класс ФЛистбоксКласс метод, который регистрирует для данного листбокса событие онДаблКлик
пишем:
имя_любого_листбокса.setItemDblClick(любая_функция);
...и любая_функция будет срабатывать по даблклику на строке листбокса
такие пироги
