PDA

Просмотр полной версии : прозрачность мувика в зависимости от положения мыши


xcube
24.08.2006, 02:32
мне нужно чтобы менялась прозрачность клипа. т.е. чем ближе мышка к клипу тем он виднее и наоборот.

знаю что нужно дать имя клипу, создать переменную и привязать ее значение к значению мыши....
не буду просить готовый исходник или просить написать код.... хочу сам дойти до истины = )

но я плохо знаю синтаксис и вобще опыт работы с actionScript небольшой.
помогите написать скрипт с чего начать?
какие операторы нужно задействовать.
дайте плиз подсказки.

Therion
24.08.2006, 03:13
до истины дойти не сложно:)
сначало находиш расстояние стрелки к мувику

"mc"- имя мувиклипа

расстояние по оси X
Xd=_xmouse-mc._x
расстояние по оси Y
Yd=_ymouse-mc._y

общее расстояние решаем по теореме пифагора (C²=A2+B²)
D=Math.sqrt(Xd*Xd+Yd*Yd) (Math.sqrt()=> корень из числа)

теперь надо написать зависимость между D и _alpha (_alpha-прозрачность:
0- мувик не видно, 100 мувик полностью видно итд)

значить чем больше D тем меньше _alpha

дальше уже сам:)


а в готовом виде это должно выглядеть примерно так:

_root.onEnterFrame=function(){
Xd=_xmouse-mc._x
Yd=_ymouse-mc._y
D=Math.sqrt(Xd*Xd+Yd*Yd)
mc._alpha=.....

}

xcube
24.08.2006, 03:21
Therion , big THANKS щас попробую!!! = )

Therion
24.08.2006, 03:31
во
сделал самый простой способ...

_root.onEnterFrame=function(){
Xd=_xmouse-mc._x
Yd=_ymouse-mc._y
D=Math.sqrt(Xd*Xd+Yd*Yd)
mc._alpha=100-D }


если мувик исчезает силно быстро(зависит от расстояния "D"), то "D" можно поделить на 2,3,... Если исчезает слишком медленно, тогда "D" можно умножить

xcube
24.08.2006, 03:34
урааа! работает!

_root.onEnterFrame=function(){
Xd=_xmouse-mc._x
Yd=_ymouse-mc._y
D = Math.sqrt(Xd*Xd+Yd*Yd);
mc._alpha=D;
}

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

Therion еще раз спасибо

xcube
24.08.2006, 03:37
Therion, снова спасибо как раз думал над тем как убавить чувстсительность!!!

xcube
24.08.2006, 04:01
а как инвертировать значение переменной D чтобы при приближении мувик наоборот проявлялся а не проподал?

Therion
24.08.2006, 04:06
просто от определённого числа отнимаеш "D"
у меня в скрипте написано так... mc._alpha=100-D

xcube
24.08.2006, 04:49
снова вопрос появился как сделать чтобы значение переменной D не превышало значение 600?
заранее спасибо

xcube
24.08.2006, 05:01
кажись сам разобрался теперь прозрачность не обускается ниже исходной - вот = )

_root.onEnterFrame = function() {
Yd=_ymouse-mc._y
D = Math.sqrt(Yd*4*Yd*4);
mc._alpha=700-D
if (mc._alpha<50){
mc._alpha=51}
trace(mc._alpha);
}

iNils
24.08.2006, 11:49
xcube, прочитайте пункт 3 (остальные тоже почитайте для общего развития) правил подраздела http://www.flasher.ru/forum/showthread.php?t=79864