Проблема с выключателем - PullRequest
       12

Проблема с выключателем

0 голосов
/ 09 декабря 2010

Моя проблема в том, что я не могу (не знаю) заставить мой переключатель работать.Здесь, в моем первом случае, я ввожу "hache", и он не проходит через.Как ни странно, в моих trace(traget); [Object hache] или [Object extincteur] (в зависимости от того, на какой mc я нажимаю) выходит ... Почему это не проходит в первом случае?Я понятия не имею.Я попытался удалить "".

package cem
{
    import flash.display.MovieClip;

    public class actionObjets{

        /*--inventaire--*/
        private static var inventaireHache:Boolean = false;
        private static var inventaireExtincteur:Boolean = false;

        private var objetClique:MovieClip;

        public function actionObjets(target) {
            this.objetClique = target;
            switch(objetClique){
                case "hache":
                    inventaireHache = true;
                    ajouterInventaire(objetClique);
                    break;
                case "extincteur":
                    inventaireExtincteur = true;
                    ajouterInventaire(objetClique);
                    break;
            }
            trace(target);
        }
        private function ajouterInventaire(objetEnlever):void{
            objetClique.parent.removeChild(objetClique);
            trace(inventaireHache + " - Hache");
            trace(inventaireExtincteur + " - Extincteur");
        }

    }

}

btw, цель - это мувиклип, который я щелкнул по объекту Extincteur, или Object hache.

1 Ответ

1 голос
/ 09 декабря 2010

Проблема в том, что objetClique не строка.Вы, вероятно, хотите сделать что-то вроде switch (objetClique.name).

Если вы хотите понять, что происходит, перепишите код следующим образом:

if (objetClique == "hache") {
  // ...
} else if (objetClique == "extincteur") {
  // ...
}

Надеюсь, это более наглядно иллюстрирует, почему переключательне работаетobjetClique не может быть равно строке "hache", , потому что это не строка .Судя по всему, objetClique относится к DisplayObject, и у них есть свойство с именем name, с которым вы хотите сравнить:

if (objetClique.name == "hache") {
  // ...
} else if (objetClique.name == "extincteur") {
  // ...
}

, этот код будет работать, и это эквивалентнопереключатель, который выглядит следующим образом:

switch (objetClique.name) {
  case "hache":
    // ...
    break;
  case "extincteur":
    // ...
    break;
 }
...