2013-03-27 3 views
0

необходимо сделать несколько вещей по событию click. Я новичок в этом, так есть ли другой способ написать этот код? нажав эту кнопку, он перейдет к следующему кадру, и в соответствии с выражением несколько кнопок будут видны или нет. Я написал код таким образом, и он говорит, что есть синтаксическая ошибка, но я не мог найти ее. Надеюсь, вы, ребята, понимаете это и поможете мне. :) Спасибо!Действия Script 3.0, если инструкции else

review_btn.addEventListener(MouseEvent.CLICK, review1) 
function review1(event:MouseEvent):void{ 

if(rvw1 == "Correct"){ 
    gotoAndStop(3627); 
    help1.visible = false 

    } 
else{ 
    gotoAndStop(3627); 
    help1.visible = true 

} 
} 

review_btn.addEventListener(MouseEvent.CLICK, review2) 
function review2(event:MouseEvent):void{ 

if(rvw2 == "Correct"){ 
    gotoAndStop(3627); 
    help2.visible = false 

    } 
else{ 
    gotoAndStop(3627); 
    help2.visible = true 

} 
} 

review_btn.addEventListener(MouseEvent.CLICK, review3) 
function review3(event:MouseEvent):void{ 

if(rvw3 == "Correct"){ 
    gotoAndStop(3627); 
    help3.visible = false 

    } 
else{ 
    gotoAndStop(3627); 
    help3.visible = true 

} 
} 

review_btn.addEventListener(MouseEvent.CLICK, review4) 
function review4(event:MouseEvent):void{ 

if(rvw4 == "Correct"){ 
    gotoAndStop(3627); 
    help4.visible = false 

    } 
else{ 
    gotoAndStop(3627); 
    help4.visible = true 

} 
} 

review_btn.addEventListener(MouseEvent.CLICK, review5) 
function review5(event:MouseEvent):void{ 

if(rvw5 == "Correct"){ 
    gotoAndStop(3627); 
    help5.visible = false 

    } 
else{ 
    gotoAndStop(3627); 
    help5.visible = true 

} 
} 
+0

Вы должны, по крайней мере, изучить, если вы сначала опечалили оператора. Если нет, или вы не можете его увидеть, добавьте отчет об ошибке в вопрос. – Vesper

+0

на самом деле нет ошибок компиляции, на вкладке вывода отображается синтаксическая ошибка ... Есть ли все равно, чтобы написать этот код просто ??? – user2214782

+2

Если он пишет синтаксическую ошибку, он также записывает строку, где есть ошибка. Проверьте его и строки до и после него, если есть незакрытый или дополнительный закрытый кронштейн любого типа и т. Д. О коде - да, это может быть упрощено, если вы добавляете своих слушателей к одной кнопке. Ответ ниже имеет некоторое упрощение. – Vesper

ответ

1

Я попытаюсь. Похоже, что единственное различие заключается в том, что в каждом методе вам нужно сопоставить «helpX» .visible with «rvwX» равно строке «Правильно», где X - число от 1 до 5. Рамка gotoAndStop() одинакова независимо. Кроме того, все пять предназначены для одной кнопки. Я собираюсь принять предположение, что «помощь клипов» является мувиклипами, определенными на сцене иначе, если они из чего-то другого, я бы сохранил их в массиве для прокрутки вместо «создания» имени и поиска ссылки таким образом просто для ясности.

function review(event:MouseEvent):void { 
    for(var counter:int = 1; counter < 6; counter++){ 
     this["help" + counter].visible = (this["rvw" + counter] != "Correct"); 
    } 
    this.gotoAndStop(3627); 
} 
review_btn.addEventListener(MouseEvent.CLICK, review); 
+0

, если rvwX не соответствует правилу helpX, не должно быть видимым ... и это не касается вашего вышеуказанного кода. :/ Я новичок в мире кода и каждый раз испорчу коды: p: D btw thanx для вашего сотрудничества. Если у вас есть время, не могли бы вы переписать код, рассмотрев ниже пример. : D if (rvwX == "Correct") gotoAndStop (X); helpX.visible = true else gotoAndStop (X); helpX.visible = false Благодарим вас за то, что потратили драгоценное время на меня. :) – user2214782

+0

Упс, моя ошибка. Я получил helpX, чтобы быть видимым, если строка равна «Исправить», как вы указали, когда это должно быть наоборот. Отредактировал мой код, чтобы исправить это. – mitim

0

Я думаю, что вы должны сделать класс с 2-х полей: «помощь» и «RVW» (позвольте мне назвать его «Switcher»). Кроме того, она может содержать функцию установки видимости (может, не должна, эта функция также может быть в главном классе):

Switcher.as:

import flash.display.MovieClip; 

public class Switcher { 
    private var help:MovieClip; 
    private var rvw:String; 

    public function setVisibility() { 
     help.visible = !(rvw == "Correct"); 
    } 
} 

Тогда вы должны сделать массив Switcher-х объекты в главном классе и использовать только один «обзор» обработчик:

function review(event:MouseEvent):void { 
    for each(var sw:Switcher in switchersArray) { 
     sw.setVisibility(); 
    } 
    this.gotoAndStop(3627); 
} 

код из предыдущего ответа будет работать правильно, но ИМХО, создавая массив (или вектор) подобных объектов лучше, чем делать много help1, help2, help3 и т. д.

Смежные вопросы