Форум 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=104099)

Rewers 18.11.2007 22:34

Массив в функции не работает
 
Вложений: 1
Не могу веделить массив для переменой в функции так чтобы чтобы одна и таже функция выполнялась в выделеном для ней массивом вот или тут прикол не в массиве
Код:

function vl(name) {
        var mos = new Array(_root.mc1, _root.mc2, _root.mc3, _root.mc4, _root.mc5);
        for (i=1; i<6; i++) {
        mos[i] = eval("mc"+i);
        if (_root["mc"+i] != name) {

                        _root["mc"+i].onEnterFrame = function() {

                                if (this._alpha>0) {
                                        this._alpha -= 20;
                                } else if (this._alpha<=0) {
                                        this._visible = false;
                                }
                };
                }
name.onEnterFrame = function() {

                        name._xscale = 300;
                        name._yscale = 300;
};
        }
}

function vli(name) {
var mos = new Array(_root.mc1, _root.mc2, _root.mc3, _root.mc4, _root.mc5);
        for (i=1; i<6; i++) {
                mos[i] = eval("mc"+i);
                if (_root["mc"+i] != name) {

                        _root["mc"+i].onEnterFrame = function() {

                                this._visible = true;

                                if (this._alpha<100) {
                                        this._alpha += 10;
                                }
                        };
                }
                name.onEnterFrame = function() {
                        name._xscale = 100;
                        name._yscale = 100;
                };
        }
}
function btn() {
        for (i=1; i<6; i++) {
                _root["mc"+i].onRollOver = function() {
                        vl(this);
                };
                _root["mc"+i].onRollOut = function() {
                        vli(this);
                };
        }
}
btn();

вот примерчик

GFreemen 18.11.2007 23:23

я так понимаю хотелось чегото подобного этому?

Код:

function vl(name) {
        name.onEnterFrame = function() {
                if (this._alpha>0) {
                        this._alpha -= 20;
                } else if (this._alpha<=0) {
                        delete name.onEnterFrame;
                }
        };
        name._xscale = 300;
        name._yscale = 300;
}
function vli(name) {
        name.onEnterFrame = function() {
                if (this._alpha<100) {
                        this._alpha += 10;
                }else{
                        delete name.onEnterFrame;
                }
        };
        name._xscale = 100;
        name._yscale = 100;
}
               


function btn(){
        for(i=1;i<6;i++){
                _root["mc"+i].onRollOver=function(){vl(this);}
                _root["mc"+i].onRollOut=function(){vli(this);}
        }
}


btn();


Rewers 18.11.2007 23:30

Не просто при наведении увеличение мувика с плавным исчезанием остальных а опри убирании возрат к мувика 100% и плавное появление остальных и все через функцию так чтобы выполнялась при наведени на другой мувик а не останавливалась
если наводить по очереди все работает.

silin 18.11.2007 23:49

Код:

var mos = new Array(_root.mc1, _root.mc2, _root.mc3, _root.mc4, _root.mc5);
for (i in mos) {
        mos[i].onRollOver = vl;
        mos[i].onRollOut = vli;
}

function fadeOut() {
        if (this._alpha>0) {
                this._alpha -= 20;
        } else  {
                this._visible = false;
        }
}

function fadeIn() {
        if (this._alpha<100) {
                this._alpha += 10;
        }
}

function vl() {
        this._xscale = 300;
        this._yscale = 300;
        for (i in mos) {
                if (mos[i] != this) {
                        mos[i].onEnterFrame = fadeOut;
                }
        }
}

function vli() {
        this._xscale = 100;
        this._yscale = 100;
        for (var i in mos) {
                if (mos[i] != this) {
                        mos[i]._visible = true;
                        mos[i].onEnterFrame = fadeIn;
                }
        }
}


Rewers 19.11.2007 00:03

Вау круто :victory: то что надо спасибо silin буду разбираться


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

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