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

went 08.11.2006 09:18

Динамическое имя мувика
 
Подобная тема была, но так как она уже в архиве спрошу здесь.
Итак динамическое имя мувика. ТАм предлагалось 2 варианта
Код:

i=1;
this["m"+i]._visible=false;

который у меня не работает в принципе, здесь вопрос почему это может быть
и второй
Код:

i=1;
eval("_root.bla-bla.bla-bla.m"+i)._visible=false;

с ним ещё забавней, в одном месте он работает, а в другом нет
например в следующем коде:
Код:

var i=1
_root.kb.onPress = function ()

        attachMovie("Kub", "kub"+i, i, {_x:0, _y:0});
        _root.n1 = "i: "+i;
        eval("_root.kub"+i).startDrag (true);       


_root.kb.onRelease=_root.kb.onReleaseOutside=function() {
        y=eval("_root.kub"+1);
        _root.n2 = "i: "+ i;
        eval("_root.kub"+i).stopDrag ();
        eval("_root.kub"+i)._height=eval("_root.kub"+1)._height*0.5;
        eval("_root.kub"+i)._width=eval("_root.kub"+1)._width*0.5;
        }
        i++
}

в первой части где startDrag всё работает нормально
во второй где stopDrag и всё остальное не срабатывает
если поставить вместо i например 1 - сработает для 1-й, а с i не срабатывает, хотя i значение имеет

в первой части если вывести eval("_root.kub"+i) выводит к примеру _level0.kub3
во второй undefined что за чудеса?

Dimchansky 08.11.2006 11:54

1. По понятным причинам this["kub"+i] работать не будет. Будет работать _root["kub"+i];
2. У Вас реакция на событие onRelease определяется в рамках реакции на событие onPress (внимательно посмотрите на фигурные скобки). Может, Вам это и нужно, но разумно не поступать таким образом.

Код:

var i=1
_root.kb.onPress = function ()

        attachMovie("Kub", "kub"+i, i, {_x:0, _y:0});
        _root.n1 = "i: "+i;
        _root["kub"+i].startDrag (true);       

}
_root.kb.onRelease=_root.kb.onReleaseOutside=function() {
        _root.n2 = "i: "+ i;
        _root["kub"+i].stopDrag ();
        _root["kub"+i]._height=_root["kub"+1]._height*0.5;
        _root["kub"+i]._width=_root["kub"+1]._width*0.5;
        i++
}

3. Отказывайтесь от конструкций с eval, это каменный век.

went 08.11.2006 12:41

Спасибо. С eval-ом связался ибо он работал, теперь буду делать по правильному.

etc 08.11.2006 14:02

Ну зачем вы себе усложняете жизнь выражениями _root['kub'+i], когда attachMovie возвращает ссылку на созданный мувик?

went 13.11.2006 10:07

Цитата:

Сообщение от __etc
Ну зачем вы себе усложняете жизнь выражениями _root['kub'+i], когда attachMovie возвращает ссылку на созданный мувик?

э-э... примерчик можно?

pkfun 13.11.2006 10:27

went
Код:

var main:MovieClip = this;
var mc:MovieClip;
var i:Number = 1;
//
main.kb.onPress = function() {
        mc = main.attachMovie("Kub", "kub"+i, i, {_x:0, _y:0});
        main.n1 = "i: "+i;
        mc.startDrag(true);
};
main.kb.onRelease = main.kb.onReleaseOutside=function () {
        main.n2 = "i: "+i;
        mc.stopDrag();
        mc._height = mc._height*0.5;
        mc._width = mc._width*0.5;
        i++;
};

Это распространенный прием. :)

etc 13.11.2006 13:38

went, примерчики в мануале по attachMovie.

went 15.11.2006 09:00

Цитата:

Сообщение от pkfun
Это распространенный прием. :)

Спасибо. Теперь распростаню его и на себя :)

pkfun 15.11.2006 10:59

Я только написал пример. Основная мысль от __etc :away:

went 15.11.2006 13:39

Цитата:

Сообщение от pkfun
Я только написал пример. Основная мысль от __etc :away:

__etc тоже СПАСИБО :victory:


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

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