PDA

Просмотр полной версии : 2-й параметр onMouseWheel - как правильно задать?


Жень Шень
13.12.2007, 17:23
Привет!
Из хэлпа:
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function (delta) {
clip_mc._x += delta;
}
Mouse.addListener(mouseListener);
Как правильно задать второй параметр(function (delta, mymc_mc)), чтоб колесо срабатывало только находясь над клипом mymc_mc?
Да, и о типе параметра. В русском переводе (раздел Mouse.onMouseWheel переводил Антарес) говорится:scrollTarget Необязательный параметр. Число, показывающее верхний мувиклип...
У Адобэ:scrollTarget:String [optional] - A parameter that indicates the topmost movie...
Спасибо.

wvxvw
13.12.2007, 21:16
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function (delta) {
trace(typeof(arguments[0])+" : "+typeof(arguments[1])); // Number : movieclip
trace(arguments[0]+" : "+arguments[1]); // 3 : _level0.mc
clip_mc._x += delta;
}
Mouse.addListener(mouseListener);

etc
14.12.2007, 10:51
А написать function(delta, mc) нельзя?

Жень Шень
14.12.2007, 11:25
А написать function(delta, mc) нельзя?
Конечно можно!!!
Да, прукручена уже проверка по хиттесту.
Но, я задал вопрос про стандартную функцию. Кстати еще ньюанс. В некоторых случаях дельта принимает значение 3, в других 10.
Сново слышу ответ: "Установи свою". Так и делаю.
Но, хотел понять ДАННУЮ до конца.
И понял:
var mc:MovieClip;// клип на котором работает колесо
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta, mc) {
if (mc) {
clip_mc._x += delta;
}
};
Mouse.addListener(mouseListener);

wvxvw
14.12.2007, 12:54
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function (delta, mc) {
ASSetPropFlags(_global,null,8,true);
for(var i in _global){
if(mc instanceof _global[i]){
trace("The second argument belongs to the "+i+" type");
}
}
}
Mouse.addListener(mouseListener);
Кстати... я не знаю откуда взялось предположение, что второй аргумент - строка... Ну никак - только Object или MovieClip %)

etc
14.12.2007, 13:18
3 или 9 (10 не бывает) — зависит ровным счетом от настроек системы.

Жень Шень
14.12.2007, 13:52
Кстати... я не знаю откуда взялось предположение, что второй аргумент - строка... Ну никак - только Object или MovieClip %)
Привет!
Смутило "scrollTarget:String [optional]" и очень поверхностное знание английского. Спасибо тебе, что напомнил про проверку (typeof). Это и разрешило "проблему": теперь я так понимаю - параметр, это строка, дающая ссылку на число (уровень клипа). Я пробывал раньше писать вторым параметром _level0.mc или число (уровень клипа mc), что вызывало ошибку.

wvxvw
14.12.2007, 14:13
GalaxyBeing said on Feb 2, 2006 at 4:23 PM :
Under "scrollTarget" it says "If you want to specify a value for scrollTarget but don't want to specify a value for delta, pass null for delta."

This is incorrect, because you don't pass these values, you receive them. You should also mention that "delta" is passed by Windows and is set in the Mouse Control Panel. "scrollTarget" is obviously passed by Flash.
Mario Klingemann said on Jun 29, 2006 at 5:03 AM :
The scrollTarget is not of type String as the docs say, but rather of type movieclip or object - at least that's what flash tells me if I test it like this:

private function onMouseWheel(delta:Number, clip:String):Void
{
trace(typeof clip);
}
peterd_mm said on Jun 30, 2006 at 1:29 PM :
Mario,

You are correct. The scrollTarget contains a reference to the symbol currently under the mouse cursor (which can be a MovieClip, Button, TextField, etc). Using the typeof operator on the scrollTarget returns either movieclip or object, although you can get more specific information by using the instanceof operator.

We'll make sure this is fixed in the next release of the document.
Не, просто в хелпе ошибка - это цитата отсюда:
http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002433.html
Дословно: человек из тогдашней ММ пообещал исправить это в следующем релизе (очевидно забыли %)

Жень Шень
14.12.2007, 17:17
Еще раз спасибо за исчерпующий ответ!
Тема второго параметра раскрыта полностью. :rtfm:
с меня :drinks: