![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
Есть вот это:
this.onRollOver = function(){ Mouse.hide(); // скрываем стандартный курсор var p = _root.attachMovie("pric","pric"+_root.getNextHighestDepth(),_root.getNextHighestDepth()); onMouseMove = function() { // ф-ция, которая будет вызываться при каждом движении мыши p._x = _xmouse; // задаём координаты нашего крусора (такие же, как и у стандартного) p._y = _ymouse; updateAfterEvent(); } } this.onRollOut = function(){ // когда убираем курсор p.removeMovieClip(); Mouse.show(); // показываем стандартный указатель } хотя trace(p); выдает undefined/ изображение курсора как бы залипает при наведении на объект и так и остаётся, а курсор продолжает двигаться вот так: Вложение 27628 |
|
|||||
|
Модрон-ветеринар
|
Каша.
1. Что такое this здесь? Где размещен код? 2. Ошибка. В this.onRollOut не может быть видна p, потому как она объявляется внутри this.onRollOver как локальная переменная - ссылка на приаттаченный мувик. 3. Функцию объявлять внутри другой - плохо. Если уж на то пошло, то лучше всего назначать обработчику ссылку на поименованную функцию.
__________________
Идите первым! |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
угу, ошибку понимаю, но где тогда объект загружать - не пойму.
this - объект массива, на который в данный момент наведён курсор. А размещение функции onMouseMove не принципиально.. как раз она очень хорошо работает. В данный момент выглядит так: function move_func() { varDif = this._xscale/100; this._x += this.dX+_root.dX*varDif; if (this._x<=-1000) { this.removeMovieClip(); } if (this._x>=1000) { this.removeMovieClip(); } this.onRollOver = function(){ // при наведении на mc var p = _root.attachMovie("pric","pric"+_root.getNextHighestDepth(),_root.getNextHighestDepth()); Mouse.hide(); // скрываем стандартный курсор onMouseMove = function() { // ф-ция, которая будет вызываться при каждом движении мыши p._x = _xmouse; // задаём координаты нашего крусора (такие же, как и у стандартного) p._y = _ymouse; updateAfterEvent(); } } this.onRollOut = function(){ // когда убираем курсор p.removeMovieClip(); Mouse.show(); // показываем стандартный указатель updateAfterEvent(); } function snow_func() { l =6; var r:String =""+ Int(Math.random()*l+1 ); varTarget = _root.attachMovie("snow_mc"+r ,"snow"+_root.getNextHighestDepth()+"_mc"+r, _root.getNextHighestDepth()); varTarget.onEnterFrame = _root.move_func; } setInterval(snow_func, 700); Последний раз редактировалось Маруська; 22.02.2012 в 09:32. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Объявите переменную p вне функции.
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
мне нужно p подгружать на слой выше, чем varTarget = _root.attachMovie("snow_mc"+r ,"snow"+_root.getNextHighestDepth()+"_mc"+r, _root.getNextHighestDepth());,поэтому нужно его подгружать после срабатывания этой части кода.
сделала так: function snow_func() { l =6; var r:String =""+ Int(Math.random()*l+1 ); varTarget = _root.attachMovie("snow_mc"+r ,"snow"+_root.getNextHighestDepth()+"_mc"+r, _root.getNextHighestDepth()); varTarget.onMouseMove = _root.mouse_func; varTarget.onEnterFrame = _root.move_func; } function mouse_func() { var p = _root.attachMovie("pric","pric"+_root.getNextHighestDepth(),_root.getNextHighestDepth()); if(this.onRollOver){ // при наведении на mc Mouse.hide(); // скрываем стандартный курсор onMouseMove = function() { // ф-ция, которая будет вызываться при каждом движении мыши p._x = _xmouse; // задаём координаты нашего крусора (такие же, как и у стандартного) p._y = _ymouse; updateAfterEvent(); } } if(this.onRollOut){ // когда убираем курсор p.removeMovieClip(); Mouse.show(); // показываем стандартный указатель updateAfterEvent(); } } Есть какой-нибудь обработчик не на каждое движение мыши, а например на событие для мыши (комплексное)? Последний раз редактировалось Маруська; 22.02.2012 в 23:07. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 104
|
Попробуйте посмотреть в сторону
+ проверка
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
а как listner назначить объект? мне нужно, чтоб он отслеживал движения на varTarget
function snow_func() { l =6; var r:String =""+ Int(Math.random()*l+1 ); varTarget = _root.attachMovie("snow_mc"+r ,"snow"+_root.getNextHighestDepth()+"_mc"+r, _root.getNextHighestDepth()); //вот тут назначить mouseListener.onMouseMove = _root.mouse_func; varTarget.onEnterFrame = _root.move_func; } |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 104
|
Маруська, в программе используется одна очень полезная кнопочка - F1 называется. Заносишь в поиск
и там выдаёт
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
ха, я так в первую очередь сделала - ноль реакции
|
|
|||||
|
Регистрация: Apr 2009
Сообщений: 104
|
а ты в какой версии flash'a работаешь?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|