2010-12-09 2 views
0

제 문제는 제가 잘 모르겠다는 것입니다. 여기에 첫 번째 경우에 "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, 대상은 movie.cl.a.k.a. Object.extincteur 또는 Object.hache를 클릭 한 것입니다.

답변

1

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; 
} 
+0

Hummmm! 그게 내가 필요한 것 같아. 자, 내 문제는 : 그것은 instance7, instance8 등을 추적합니다 ... 실제 이름으로 인스턴스의 이름을 지정하는 방법이 있습니까? – Elggetto

+0

nvm ... 방금 조사를 했어. whatiwant.name = "이름". 하하 내가 뭐라구! 정말 고마워!! 당신은 큰 도움이됩니다! 나는 당신의 대답을 받아들입니다! hehe. – Elggetto

+0

Flash 인 경우 스테이지의 요소를 클릭하고 속성 관리자 중 하나의 이름 필드에 이름을 입력 할 수 있습니다. 그렇지 않으면'myDisplayObject.name = "helloworld"에 이름을 지정하려는 표시 객체가있는 곳이면됩니다. – Theo