Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Один код для всех мувиков (http://www.flasher.ru/forum/showthread.php?t=94209)

Dessert 06.04.2007 19:44

Один код для всех мувиков
 
Здраствуйте, у меня есть код. При нажатии на мувик меняеться альфа, при отпускании альфа такая же как и была.
Вопрос: можно ли сделать одним кодом, на все мувики. Можно ли, как нибудь вписать название всех мувиков(например pop_mc, pop1_mc, pop2_mc ...)
Типа pop_mc, pop1_mc, pop2.onRollOver и пошол дальше код, что ниже

Код:

pop_mc.onRollOver = function () {
        this._alpha=70;
}
pop_mc.onRollOut = function () {
        this._alpha=100;
}


iNils 06.04.2007 19:45

Написать код внутри символа в библиотеке.

Dessert 06.04.2007 19:46

а можешь подробнее? я чуток недопонял.

Aziz Zaynutdinoff 06.04.2007 21:00

либо через цикл
Код:

for(var i:Number = 0; i < <ЧИСЛО_МУВИКОВ>; i++)
{
    this["pop" + i + "_mc"].onRollOver = function()
    {
        this._alpha = 70;
    }
}


flash33 06.04.2007 21:33

Код:

var clips = ["pop_mc", "pop1_mc", "pop2_mc"];//массив с именами нужных клипов
MovieClip.prototype.onRollOver = roll;
MovieClip.prototype.onRollOut = roll;
function roll() {
        for (var i in clips) {
                if (this._name == clips[i]) {
                        this._alpha = this._alpha < 100?100:70;
                        break;
                }
        }
}


Dessert 06.04.2007 22:20

спасибо, всем

DanQuimby 07.04.2007 08:58

можно вообще MovieClip сделать наследником :)
class AlfaChange extends MovieClip
и переопредилить нажатие , вот и все :) просто создаеш такой
мувик хоть 10000 и все они будут делать все сами :)
Дерзай

Kikasso 07.04.2007 11:02

или при аттаче:
Код:

function a70(){ this._alpha=70;  }
function a100() { this._alpha=100; }

attachMovie ("clip", "clip1", 1, {onRollOver:a70, onRollOut:a100, _x:10 } );
attachMovie ("clip", "clip2", 2, {onRollOver:a70, onRollOut:a100, _x:20 } );
attachMovie ("clip", "clip3", 3, {onRollOver:a70, onRollOut:a100, _x:30 } );

Или задействовать watch:
Код:

function alphaMan( prop, oldval, newval ){
if(oldval) oldval._alpha = 100;
if(newval) newval._alpha = 70;
return newval;
}

var hilited:MovieClip;
this.watch("hilited", alphaMan );

function a70(){ hilited = this;  }
function a100() { hilited = null; }

attachMovie ("clip", "clip1", 1, {onRollOver:a70, onRollOut:a100, _y:100, _x:100 } );
attachMovie ("clip", "clip2", 2, {onRollOver:a70, onRollOut:a100, _y:100, _x:200 } );
attachMovie ("clip", "clip3", 3, {onRollOver:a70, onRollOut:a100, _y:100, _x:300 } );


Dessert 07.04.2007 18:12

спасибо!


Часовой пояс GMT +4, время: 12:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.