PDA

Просмотр полной версии : Как осуществить выбор курсора из 4 возможных?


Kuzmichello
24.07.2010, 08:19
Здравствуйте, уважаемые мастера. Помогите, пожалуйста, новичку. Я осваиваю FlashPro8. Много страниц на сайте пролистал, но ответ на свой вопрос не нашел. У меня проблема со сменой курсора.
На 3-й сцене,в одном из кадров у меня размещено следующее. Клип с четырьмя кнопками (для 4 разных курсоров), по нажатии на которые курсор должен сразу же изменяться на выбранный и отображаться в любой точке на экране. Есть 4 клипа с этими самыми курсорами, им даны имена cursortable1, cursortable2… В самом первом кадре была объявлена переменная (_global.curs=1;), она изменяется при нажатии на кнопки (значения-1,2,3,4). Для кадра написал следующее:

onMouseMove=function(){
if(curs==1){
cursortable1._x=_xmouse;
cursortable1._y=_ymouse;
updateAfterEvent();
}
else if(curs==2){
cursortable2._x=_xmouse;
cursortable2._y=_ymouse;
updateAfterEvent();
}
else if(curs==3){
cursortable3._x=_xmouse;
cursortable3._y=_ymouse;
updateAfterEvent();
}
else{
cursortable4._x=_xmouse;
cursortable4._y=_ymouse;
updateAfterEvent();
}
}

Для кнопок в клипе написал следующее (это для кнопки1):

on (release) {
curs=1;
trace(curs);
_root.onMouseMove = function() {
cursortable1._x = _xmouse;
cursortable1._y = _ymouse;
updateAfterEvent();
};
}

Проблема в том, что при нажатии на кнопки курсор не меняется, хотя значение curs изменяется. Курсор принимает только тот вид, который соответствует значению curs, заданному изначально. Подскажите, что я не так делаю. Много чего пробовал, onEnterFrame, setInterval с функцией пробовал, может я его не так использовал, не знаю.

NoCD
24.07.2010, 08:40
for(var i = 0;i <= 3;i++){

var name = "cursor"+i+"_mc";
var name2 = "btn_"+i;

var clip = _root.attachMovie(name,name2,i)
clip._x = 25 * i + 100;
clip._y = 200;
clip.ind = i;
clip.onPress = select_cursor;
}

function select_cursor(){

Mouse.hide()
var name = "cursor"+this.ind;
var curs = _root.attachMovie(name,"cursor",1000)
curs._x = _xmouse;
curs._y = _ymouse;
curs.onMouseMove = moveMouse;
}

function moveMouse(){
this._x = _xmouse;
this._y = _ymouse;

}


где:
var name = "cursor"+i+"_mc";(cursor0_mc,cursor1_mc,..) - movieclip кнопки с изображением курсора.

var name = "cursor"+this.ind;(cursor0,cursor1,..) - movieclip курсора.

udaaff
24.07.2010, 11:02
Kuzmichello, для оформления своего кода надо использовать теги (http://www.flasher.ru/forum/showthread.php?t=122539)

Kuzmichello
25.07.2010, 00:41
Насчет тегов - исправлюсь, не судите строго :)
С кодом буду разбираться...
Спасибо NoCD !

Добавлено через 14 часов 44 минуты
NoCD, у меня есть пара вопросов.

Я тут в небольшом ступоре от вашего ответа. Не могли бы вы пояснить, собственно, как всё это работает? строки clip._x и clip._y, например, зачем. а заодно порекомендовать что-нибудь (книгу или другой источник), чтобы я стал таким же умным, как вы.