我的问题是我不能(不知道)让我的开关工作。在我的第一个案例中,我输入"hache"
,但它没有通过低谷。奇怪的是,在我的trace(traget);
[对象hache]或[对象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,target是我点击a.k.a.对象extincteur或对象hache的movieClip。
答案 0 :(得分: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;
}