PDA

Просмотр полной версии : эффект "убегания" кнопки от курсора, подскажите


ksinti
06.07.2014, 16:09
привет!
я начинающий в флеше, есть такая задача, не могу справиться, очень надеюсь что кто-то откликнется и поможет.
нужно сделать, чтоб от курсора "убегала" кнопка и ее невозможно было нажать.
как это сделать?
1. создала кнопку
2. внутри ее на over, выделяю кнопку, вставляю скрипт такой:
<script type="text/javascript">
<!--
function getObj(objID)
{
if (document.getElementById) {return document.getElementById(objID);}
else if (document.all) {return document.all[objID];}
else if (document.layers) {return document.layers[objID];}
}

cobj=getObj("button1");
var x1=0, y1=0;

function moveIt(){
x=Math.floor(Math.random()*401);
y=Math.floor(Math.random()*301);
while (Math.abs(x1-x)<=70) {x=Math.floor(Math.random()*401);}
while (Math.abs(y1-y)<=50) {y=Math.floor(Math.random()*301);}
x1=x;
y1=y;
cobj.style.left = x+"px";
cobj.style.top = y+"px";
}
//-->
</script>

этот скрипт нашла в инете, не знаю верен ли.
пишет что синтаксическая ошибка.
помогите плизз!!!!срочно очень нужно!!!!

Zebestov
06.07.2014, 17:52
1. Код следует оформлять тегами.
2. Приведенный пример написан на javascript в контексте веб страницы — он и должен выдавать ошибки.

ksinti
07.07.2014, 03:37
извините, если неверно оформила вопрос, поторопилась.
подскажите пожалуйста, как же это сделать для заданной кнопки, что и куда прописать. все сделано, осталось только это и срочно нужно(((((((((((
код вставлять на саму кнопку? или внутри нее на over?
спасибо!
п.с. флеш у меня цс5

ThomasTheCat
07.07.2014, 04:22
Есть такой метод hitTest, проверка на пересечение (столкновение) объектов клипа. Сделай так:

1. Нарисуй свою кнопку, сконвертируй её в MovieClip;
2. Выдели свою кнопку и нажми f9 - откроется редактор ActionScript.
3. Напиши в нём вот этот код:
onClipEvent (enterFrame) {
if(this.hitTest(_root._xmouse,_root._ymouse,true)==true) {
this._x=random(Stage.width)
this._y=random(Stage.height)}}

4. Ctrl+Enter и попробуй навести на свою кнопку.

ksinti
07.07.2014, 14:20
спасибо огромное, получилось!
но кнопка не становиться на первоначальное место, как от не курсор отводишь, как с этим справиться? кроме того выходит за пределы рабочего поля баннера.

Добавлено через 2 часа 46 минут
оказывается в Action Script 2 нет возможности, чтобы кнопка становилась обратно на место, при отведении мышки. а как тогда в 3 это порписать? подскажет кто?))
заранее спасибо!

Добавлено через 2 часа 47 минут
могу исходник закинуть, напишите куда почту, спасибки всем кто глянет)

samana
07.07.2014, 19:34
оказывается в Action Script 2 нет возможности, чтобы кнопка становилась обратно на место, при отведении мышки. а как тогда в 3 это порписать?
Такой встроенной возможности нет ни в as2 ни в as3, но это можно сделать самим.
Вам нужно создать дополнительный объект, который будет находится над кнопкой. Он будет статичным, и именно с ним надо взаимодействовать мышь. Этот объект будет прозрачным и будет служить просто для определения области, на которую если навести мышь - то кнопку переместить, а если убрать мышь с этой области - то кнопку вернуть на место. Это своего рода - триггер.
Посмотрите исходник (cs5) и попробуйте разобраться как это работает. Обратите внимание, что некоторым объектам присвоены имена на панели свойств (properties), это необходимо для того, чтобы можно было к этим объектам обращаться через код.
p.s. shapeOver_mc полностью прозрачный, поэтому вы его не видите, но можно выделить его мышкой.
but.swf