![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Всегда считал что сабж невозможен. И вот заказчик ткнул меня носом в http://www.volvocars.com/ru/models/V...s/default.aspx . Пару часов провисел над декомпайлером, но так и не допёр, какое событие определяет вход/выход флешки за пределы ролика (нужный handler висит на onRollOut / onDragOut, но как это может работать - хз).
JS'а там нет.
__________________
#define true false //счастливой отладки, друзья |
|
|||||
|
ставим большооой прозрачный прямоугольник поверх всего этого дела и лепим ему событие на RollOut-прятать курсор, на RollOver-показать
|
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Типа такого что-ли?
_http://www.av.kharkov.com/out.html _http://www.av.kharkov.com/out2.html Первый без реакции за пределами, второй, сы.
__________________
john Последний раз редактировалось Molecula; 19.02.2008 в 21:55. |
|
|||||
|
меценат
|
Однажды кто-то на форуме оставил этот монускрипт=)
Stage.align="TL";
Stage.showMenu=false;
Stage.scaleMode="noScale";
//
Stage.addListener(o=_global.mouseController=_level0.createEmptyMovieClip("$$$MOUSE$$CONTROLLER$$",-16381));
o.f=function(w,h){with(this){
_x=_y=0;
lineStyle(0,0,0);beginFill(0,0);
lineTo(w,0);
lineTo(w,h);
lineTo(0,h);
endFill();
};};
o.onResize=function(){this.f(Stage.width,Stage.height);};o.onResize();
addProp=function(o,p,f){o.addProperty(p,function(){return o[p];},f);};
addProp(o,"mouseOver",function(mouseOver){trace((mouseController.txt.text=(mouseOver)?("[мышка во флэшке]"):("[мышка вне флэшки]")));});
o.useHandCursor=false;
o.createTextField("txt",0,0,0,0,0).autoSize=true;//
p=function(o,m,f,n){o[m]=function(){f();this[n]();trace(n);}};
pr=function(o,m,f){for(var i=0;i<o.length;i++){for(var i2=0;i2<m.length;i2++){p(o[i],m[i2],f,(m[i2].charAt(2).toLowerCase()+substring(m[i2],4,m[i2].length-2)));};};};
o=[MovieClip.prototype,Button.prototype];
pr(o,["onRollOver"],function(){_global.mouseController.mouseOver=true;});
pr(o,["onDragOver"],function(){_global.mouseController.mouseOver=true;});
pr(o,["onRollOut"],function(){_global.mouseController.mouseOver=false;});
pr(o,["onDragOut"],function(){_global.mouseController.mouseOver=false;});
pr(o,["onReleaseOutside"],function(){_global.mouseController.mouseOver=false;});
pr(o,["onPress","onRelease"]);
//
attachMovie("myButton","but",0).stop();
but._x=but._y=200;
but.rollOver=function(){trace((this.text="навели на"+this));this.gotoAndStop(2);};
but.releaseOutside=function(){this.gotoAndStop(2);};
but.rollOut=function(){trace((this.text="отвели от"+this));this.gotoAndStop(1);};
but.press=function(){trace((this.text="нажали на"+this));};
but.release=function(){trace((this.text="отжали "+this));};
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Цитата:
Цитата:
__________________
#define true false //счастливой отладки, друзья Последний раз редактировалось iNils; 19.02.2008 в 22:15. |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
А, черт. Все-равно не универсальное решение. В мувиках, созданных программно после выполнения этого кода, все eventHandlers не будут включены в схему.
Я сейчас написал синглтон, который на onEnterFrame проверяет все интерактивные мувики на Stage и, если пользователь переписал eventHandler, переписывает этот eventHandler так, чтобы синглтон получал оповещение onEvent. Это абсолютно рабочая схема, но, очевидно-тормозная. Для маленьких проектов ( мувиков на Stage < 1000 ) тормоза будут не критичны. Дальше - ХЗ. Если кто придумает более эффективную схему - отпишитесь плиз.
__________________
#define true false //счастливой отладки, друзья |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Вариант: повесить прозрачный мувик на всю сцену, и проверять hitTest'om в onEnterFrame наличие курсора на ним.
|
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Люди, написавшие последние два поста, вы, вообще, понимаете о чём речь?
__________________
#define true false //счастливой отладки, друзья |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|