AS3 изменить видимость элемента, если переменная становится меньше X - PullRequest
0 голосов
/ 02 апреля 2012

Я приложил исходный файл ниже, я немного застрял.

По сути, это FLA, в котором есть переменная, которая изменяется (smscounter) в зависимости от того, какое число считывается из файла XML (на моем сервере).На первом кадре главной сцены есть большой видеоклип под названием «перемотка».Есть левая и правая кнопки, которые перемещаются между кадрами в этом ролике «перемотка».То, что я пытаюсь сделать в теории:

if(frame != 2) {button_right.visibility = true};
if(frame == 2 && smscounter > 5) {button_right.visibility = true};
if(frame == 2 && smscounter < 5) {button_right.visibility = false}

Мне сказали, что это не сработает просто потому, что как только переменная (видимость) установлена, она не будет постоянно проверять ее,так я должен отправить событие?Я перепробовал 3-4 учебника и не могу заставить их работать.

Теперь несколько вещей:
- Я ЛЮБЛЮ, чтобы избежать чего-то сверхсложного.Все, что мне нужно, - это кадр 2, чтобы кнопки не было, если smscounter ниже 5. Для других уроков требовался другой класс и класс документа, но я не мог заставить их работать
- кнопки в данный момент находятся вне мувиклипа перемотки.Я помещал их внутри и в каждом кадре, но потом не мог заставить их реагировать на опрокидывание.
- Код примерно такой же оптимизированный, как если бы его написал первоклассник, главным образом потому, что я дизайнер и яЯ помогал с этим в течение всего пути.
- Greensock LoaderMax используется для вставки видео и звука. Не очень важно для проблемы, я просто оставил их там, чтобы дать лучшую картину того, что яработаю над.

Ссылка на FLA и исходные файлы: http://www.mediafire.com/download.php?ejy6j9h9r1c1829

1 Ответ

3 голосов
/ 02 апреля 2012

вы можете добавить этот код на главную временную шкалу Похоже, вы можете перейти только к кадрам 2 и 3, но у вас есть всего 21 кадр (из линейки напряжения), поэтому я использовал цифры вместо 1 и totalFrames.

rewinder.addEventListener(Event.ENTER_FRAME,checkButtons);
function checkButtons(e:Event):void{
    if(rewinder.currentFrame <= 2){
        button_left.visible = false;
    }else{
        button_left.visible = true;
    }

    if(rewinder.currentFrame >= 3){
        button_right.visible = false;
    }else{
        button_right.visible = true;
    }
}
...