Просмотр полной версии : Как поменять курсор
Arhitector
13.02.2006, 19:25
Как поменять курсор мыши на свой нарисованный?
Я полазил по форуму и нашел, только один пример...
Где нужно на новый курсор вешать вот этот вот скрипт
onClipEvent (load) {
Mouse.hide();
this.startDrag(1);
}
onClipEvent (enterFrame) {
this._x = _root._xmouse;
this._y = _root._ymouse;
}
но при нажатии правой кнопки мыши, стандартная мышь появляется поверх нарисованный... помогите плиззз...
кто это тебе такой код дал? =) смешной он
В хелпе эта функция приведена.
[G@ng$t@]Un1t
13.02.2006, 19:34
Я делаю так хотя можно делать по разному:
onClipEvent(enterFrame){
Mouse.hide();
_x = _root._xmouse;
_y = _root._ymouse;
}
[G@ng$t@]Un1t
13.02.2006, 19:39
Упс-"Mouse.hide();" надо по загрузке клипа или вобше на кадре. :rolleyes:
onEnterFrame можно вешать только в том случае, когда замененым курсором надо что-то драгать. Иначе, для "подменки" курсора надо делать startDrag...
относительно правой кнопки мыши: можно недоумевать почему выводится инфа о какой-то никому неизвестной компании, а не о Создателе ролика.
Mouse.hide();
_root.onMouseMove=function(){
customCursor_mc._x=_xmouse;
customCursor_mc._x=_ymouse;
updateAfterEvent();
}Здесь предполагается, что _root.onMouseMove больше нигде не задействовано.
а подскажите, пожалуйста, как нужный мувик из библиотеки сделать customCursor_mc? а то указатель-то прячется, а нужный не показывается.
Поставь его на сцену, обзови customCursor_mc :)
Точно сработает. Слушай меня, проверенно!
код ставиться на обьект преставляющий курсор.
onClipEvent(load){
startDrag(this, true);
Mouse.hide();
}
onClipEvent(mouseMove){
updateAfterEvent();
}
AlexRB, PIRIS - спасибо! :) все заработало. Оставил последний вариант :)
А такой еще вопрос - сложно ли сделать, чтобы при наведении на опр. облать курсор менял цвет?
цвет менялся плавно или резко?
да можно и резко, а можно и плавно :)
как вариант - чтобы картинка указателя заменялась на картинку светящегося указателя, кадров за 5
в мувик, где находиться изображение твоего курсора, нужно приготовить соответсвующий переход - с обычного курсора, на светящуюся. В первом и последнем кадрах этого мувика (курсора) пишем stop();
Преположим определенная область это у нас тоже MovieClip, т.е.
onClipEvent(mouseMove){
myPointer.play();
}
Homo Sapiens
17.03.2006, 16:33
Дурацкий вариант. Обработчики событий onClipEvent, код на клипах не стоит так делать
//На _root в первом кадре, наверху
//"cursor" - имя клипа, который и будет курсором
var init:Object = {_x:_root._xmouse, _y:_root._ymouse};
var cursor:MovieClip = _root.attachMovie("cursor", "cursor", 999999, init);
cursor.startDrag(true);
Mouse.hide();
PIRIS - т.е. делаю я область в виду мувиКлипа и на него вешаю
"onClipEvent(mouseMove){
myPointer.play();
}"
заменив myPointer на имя моего мувика-указателя? что-то не получилось
Homo Sapiens - а как в таком варианте сделать замену курсора при наведении на опр. область?
Homo Sapiens
17.03.2006, 18:44
t.onRollOver = function():Void
{
cursor.gotoAndStop(2);
}
t.onRollOut = function():Void
{
cursor.gotoAndStop(1);
}
t - имя клипа, который является областью, при наведении на которую нужно менять курсор.
что-то не получается..если не трудно - помогите настроить (файл), там только мувик курсор и мувик-область...
// 2006
// автор __i
// пока не сказали спасибо про себя использовать запрещено! %))
// юзаем это все дело так:
// в самом начале пишем - new MyCursor(cursorName);
// где cursorName или имя уже существующего мувика на сцене,
// или имя в библиотек, этот вариант лучше.
// потом для клипов на которые должен реагировать
// курсор пишем mc.registerCursor();
/* Типа пример
var mc = _root.createEmptyMovieClip('mc',_root.getNextHighestDepth());
mc.beginFill(0,100);
mc.lineTo(10,5)
mc.lineTo(5,10)
mc.lineTo(0,0)
mc.endFill()
new MyCursor(mc)
var mc = _root.createEmptyMovieClip('test',_root.getNextHighestDepth());
mc.beginFill(0x990000,100);
mc.lineTo(100,0)
mc.lineTo(100,100)
mc.lineTo(0,100)
mc.lineTo(0,100)
mc.endFill()
mc._x=100;
mc._y=100;
*/
class MyCursor {
var cur_mc:MovieClip;
var objects:Array;
var type;
function MyCursor(mc) {
this.objects = new Array();
_root.__CursorObj = this;
if (mc != undefined) {
if (typeof (mc) == 'movieclip') {
this.cur_mc = mc;
this.type = 'mc';
} else {
this.cur_mc = _root.attachMovie(mc, '__mycursor_mc', _root.getNextHighestDepth());
this.type = 'attach';
}
}
Mouse.hide();
this.cur_mc.owner = this;
this.setHandlers();
this.setNewMovieClipMethod();
}
function setHandlers() {
this.cur_mc.onMouseMove = function() {
if ((_root.getNextHighestDepth()-1)>this.getDepth()) {
this.swapDepths(_root.getNextHighestDepth());
}
//всегда выше всех
trace(this.getDepth());
this._x = _root._xmouse;
this._y = _root._ymouse;
trace(this.owner.objects.length);
if (this.owner.objects.length>0) {
var flag = false;
for (var i = 0; i<this.owner.objects.length; i++) {
if (this.owner.objects[i].hitTest(this._x,this._y,true)) {
flag = true;
}
this.changeColor(flag);
}
}
updateAfterEvent();
//и тут ваша машина умрет %));
};
this.cur_mc.changeColor = function(who) {
if (who) {
new Color(this).setRGB(0x00ff00);
//сдесь напиши то что будет
//происходить с твоим курсором
//при пересечении с нужным объектом,
//допустим gotoAndStop(2)
} else {
//Здесь напиши то что будет
//происходить с твоим курсором
//в обычном состоянии,
//допустим gotoAndStop(2)
new Color(this).setRGB(0xffff00);
}
};
}
function setNewMovieClipMethod() {
MovieClip.prototype.registerCursor = function() {
_root.__CursorObj.addObj(this);
};
MovieClip.prototype.unRegisterCursor = function() {
_root.__CursorObj.deleteObj(this);
};
}
function addObj(mc) {
trace(mc);
this.objects.push(mc);
}
function deleteObj(mc) {
for (var i in this.objects) {
if (this.objects[i] == mc) {
this.objects.splice(i, 1);
this.cur_mc.changeColor(false);
return;
}
}
}
}
ну это типа как вариант, и даже не самый идеальный.
а ну и еще забыл сказать - все это кладем рядом с с проектом в файле MyCursor.as
да, интересный вариант :) спасибо
Держи! Брат. И кто то говорил про мой дурацкий вариант, по моему он сам одурел.
Но вместо курсора не надо вставлять jpg, лучше будет если курсор сам нарисуешь во флеше.
Держи файл.
Супер! Спасибо, дружище, меня лично твой вариант устраивает на 100%, а курсор тут просто тестовый, на самом деле другой будет :) как раз сейчас его перерисовываю.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.