Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Переназначение имён мувиклипов (http://www.flasher.ru/forum/showthread.php?t=162376)

Sweet07 01.08.2011 03:56

Переназначение имён мувиклипов
 
Есть мувик r1 состоит из трёх кадров, В каждом из этих трёх кадрах находятся по два мувики с одинаковыми названиями r1r и r1e. В каждом кадре мувики разные, но названия соответственно идентичны.
Такая проблема: Когда запускаю функцию goRight или goFeft в мувике r1 меняется кадр, но имя r1r и r1e не переназначаются и они не взаимозаменяется, это происходит после нажатия кнопок torus_btn и toeng_btn.
Как заставить оперативу забыть привязанность к мувику, чтоб это имя можно было использовать относительно другого мувика, но названного так же.

Вот Код


Код AS3:

var lang:String="rus";
var i:Number=1;
 
r1.r1r.visible=true;
r1.r1e.visible=false;
toeng_btn.visible=false;
inv.gotoAndStop(1);       
inv1.gotoAndStop(1);
 
function toRus (e:MouseEvent):void {
        lang=="rus";
        toeng_btn.visible=true;
        torus_btn.visible=false;
        inv.gotoAndStop(1);       
        inv1.gotoAndStop(1);
        r1.r1r.visible=true;
        r1.r1e.visible=false;
}
function toEng (e:MouseEvent):void {
        lang=="eng";
        torus_btn.visible=true;
        toeng_btn.visible=false;
        inv.gotoAndStop(2);       
        inv1.gotoAndStop(2);
        r1.r1r.visible=false;
        r1.r1e.visible=true;
}
function goRight (e:MouseEvent):void {
        r1.nextFrame();
          //переназначение области памяти для r1r и r1e на следующем кадре r1//
        if (lang=="rus") {
                  r1.r1r.visible=true;
        r1.r1e.visible=false;
}else{
        r1.r1r.visible=false;
        r1.r1e.visible=true;
}
}
 
function goLeft (e:MouseEvent):void {
        r1.prevFrame();
          //переназначение области памяти для r1r и r1e на предыдущем кадре r1//
        if (lang=="rus") {
        r1.r1r.visible=true;
        r1.r1e.visible=false;
}else{
        r1.r1r.visible=false;
        r1.r1e.visible=true;
}
}
 
torus_btn.addEventListener(MouseEvent.CLICK, toRus);
toeng_btn.addEventListener(MouseEvent.CLICK, toEng);
 
left_btn.addEventListener(MouseEvent.CLICK, goLeft);
right_btn.addEventListener(MouseEvent.CLICK, goRight);

Конечно можно прописать разные названия для мувиков 1-го 2-го и 3-го кадра и при переходе проверять условие и менять их всех, но в r1 я предпологаю включить до 25 кадров, так что вот хочу избежать громозкого кода.

tsarapkabel 01.08.2011 17:40

Так не получится, меняй политику. Избежать громоздкого кода поможет цикл.

MXPain 01.08.2011 23:20

Цитата:

В каждом из этих трёх кадрах находятся по два мувики с одинаковыми названиями r1r и r1e. В каждом кадре мувики разные, но названия соответственно идентичны.
по моему логичнее 2 мувика с 3мя разными кадрами в каждом

-De- 02.08.2011 00:59

Не пишите в кадрах, не используйте кадры ни для чего, кроме просто анимаций (и встроенного загрузчика).

Sweet07 02.08.2011 01:46

Идея про цилк заинтересовала, но как правильно построить переменные, чтоб всё работало. Поковыряемся в циклах значит. Если есть идеи как его организовать - пишите, мне облегчите поиск, буду премного благодарен.

Добавлено через 10 минут
-De- я с тобой по поводу этого согласен. Код всегда должен быть на mainTimeLine. Но у меня немного не тот случай. Мне нужно в текущем мувике основного мувика переходить от Frame1 к Frame2 не меняя имён в функции. (Во фразу загнул - прочитал и сам почти понял). Буду ковыряться через цикл.

Добавлено через 10 минут
Ещё вопрос: а если через
Код AS3:

var tar:* = e.currentTarget;


-De- 02.08.2011 02:21

Код должен быть в классах! Кадры mainTimeLine - тоже кадры! Смена фреймов только в спокойно играющейся себе анимации. Иначе вечные проблемы, которые неприятно разгребать.
Вместо 3-х кадров - 3 мувика в одном кадре, сменяют друг друга через добавление/убирание на сцену или visible им меняется. У всех 3-х есть эти r1r и r1e. Завести переменную - текущий мувик и менять её при "смене кадров". И тогда currentMovie.r1r и currentMovie.r1e - будут доступны где надо и будут означать что надо.


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

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