Hitabfrage und Ausblenden macht Ärger

DayDreamer1969

Grünschnabel
Ich versuche weisse, braune und gruene flaschen in die dazugehörigen Altglascontainer zu sortieren.

Ich bin AS Anfänger.

ich habe einen Hittest der bei Übereinstimmung der Farbe von Flasche und Container den MC ausblendet.

Aber im SWF macht er das nach Lust und Laune.

Manchmal funktionieren alle, manchmal nur ein paar.

Wo liegt der fehler?

Code:
_root.onEnterFrame = function() {
	if (this.fb1.hitTest(container_braun)) {
		setProperty("fb1", _alpha, "0");

	} else if (this.fb2.hitTest(container_braun)) {
		setProperty("fb2", _alpha, "0");
	} else if (this.fb3.hitTest(container_braun)) {
		setProperty("fb3", _alpha, "0");
	} else if (this.fw1.hitTest(container_weiss)) {
		setProperty("fw1", _alpha, "0");
	} else if (this.fw2.hitTest(container_weiss)) {
		setProperty("fw2", _alpha, "0");
	} else if (this.fw3.hitTest(container_weiss)) {
		setProperty("fw3", _alpha, "0");
	} else if (this.fg1.hitTest(container_gruen)) {
		setProperty("fg1", _alpha, "0");
	} else if (this.fg2.hitTest(container_gruen)) {
		setProperty("fg2", _alpha, "0");
	} else if (this.fg3.hitTest(container_gruen)) {
		setProperty("fg3", _alpha, "0");
	}
};
 
Merke, ein Programm macht nie etwas nach Lust und Laune. Ansonsten wärst du ein heißer Kandidat für den Nobelpreis.

Probier mal die MCs mit _visible = false auszublenden anstatt den Alphawert auf 0 zu setzen.
 
Habe ich probiert.
Das war meine zweite Variante.
Aber trotzdem macht er es bei manchen Flaschen. Bei manchen nicht.

Und das hängt anscheidend ab von der Reihenfolge wie ich sie auf die container ziehe.
 

Anhänge

  • glascontainer_3d_hit_sound.zip
    566,7 KB · Aufrufe: 11
Gefahr erkannt, Gefahr gebannt ;-)

So funktionierts bei mir:
PHP:
_root.onEnterFrame = function() {
	if (fb1.hitTest(container_braun)) {
		fb1._visible = false;
	}
	if (fb2.hitTest(container_braun)) {
		fb2._visible = false;
	}
	if (fb3.hitTest(container_braun)) {
		fb3._visible = false;
	}
	if (fw1.hitTest(container_weiss)) {
		fw1._visible = false;
	}
	if (fw2.hitTest(container_weiss)) {
		fw2._visible = false;
	}
	if (fw3.hitTest(container_weiss)) {
		fw3._visible = false;
	}
	if (fg1.hitTest(container_gruen)) {
		fg1._visible = false;
	}
	if (fg2.hitTest(container_gruen)) {
		fg2._visible = false;
	}
	if (fg3.hitTest(container_gruen)) {
		fg3._visible = false;
	}
};

Also ohne else, die sind unnötig und verursachen die Fehler.
 
Zurück