Schaltflächen scheinen durch

Krieter2

Mitglied
Hallo,

ich habe innerhalb meines Haupftfilms (800 x 600) einige Schaltflächen angelegt.

Hin und wieder lade ich eine externe swf, die meinen Hauptfilm fast komplett überdeckt - jetzt ist mir zum Erstaunen aufgefallen, dass die Schaltflächen des Hauptfilms noch aktiv sind, wenn die exterene swf drüber liegt - wie soll ich sagen - die Schaltflächen des Hauptfilms scheinen durch. Wie kommt das?

Ich lade die swf wie üblich in einen container:
PHP:
on (press) {
this.createEmptyMovieClip ("container_mc", 1);  //ich lege diesen mc auf Tiefe 1 
container_mc._x = 300;
container_mc._y = 300
container_mc.loadMovie("extern.swf");
}

Wie kann man das Durchscheinen unterbinden? Ich hab doch alles richtig gemacht, oder?
 
Hi,

Mausereignisse sind u.U. weiterhin aktiv, auch wenn die Buttons durch andere Objekte verdeckt werden.

Lösung: Lege zwischen Deine Buttons und Deinen neuen Film eine durchsichtige Fläche, die Du mit einem rollOver (kann auch onPress etc. sein) versiehst - dadurch werden Mausereignisse darunterliegender Objekte "maskiert":
Code:
on (press) {
  var d = this.createEmptyMovieClip("d", 1);  // hier erstmal den "Verdecker" ...
  d.beginFill(0, 0); // ... auf dem ein Rechteck in dem
  d.moveTo(300, 300); // Bereich gezeichnet wird, wo
  d.lineTo(500, 300); // keine Buttons "durchscheinen"
  d.lineTo(500, 500);  // sollen.
  d.lineTo(300, 500);
  d.lineTo(300, 300);
  d.onRollOver = function() { }; // .. leerer Handler
  d.useHandCursor = false; // .. und Handcursor verbergen
  var container_mc = this.createEmptyMovieClip("container_mc", 2); // Hier nun den Container
  container_mc._x = 300;
  container_mc._y = 300
  container_mc.loadMovie("extern.swf");
}

Gruß
.
 
Hi,

kann man das ganze auch ohne Variablen machen? - Ich habe irgendwie Schwierigkeiten den Verdecker zu entfernen:confused: . Geht das ganz einfach mit unloadMovie oder muss ich die Variable löschen, oder wie funktioniert das?

Ich habe nämlich wieder einmal ein Pfad-Problem - denn ich will den Verdecker gleichzeitig mit der swf ("container_mc", 2) entfernen.

Also nochmal: Der User befindet sich auf dem Popup-Fenster, das meinen Hauptfilm fast komplett überdeckt und wenn er jetzt auf die Close-Schaltfläche klickt - soll beides entfernt werden - die swf und der Verdecker, der ja auch in einem MC liegt(!) .

Nur so nebenbei gefragt: Manchmal benutze ich statt unloadMovie einfach this._visible = false; - ist die swf dann nur unsichtbar und nimmt ggf. noch irgendwelche Ressourcen in Anspruch, die meine Performance gefährden können?

Gibt es da einen großen Unterschied? - Ich nehme mal an, außer der Depth-Problematik, die ich habe, wenn ich ein anderes MC in die gleiche Tiefe lege dürfte das Resultat das gleiche sein, oder?

Cheers
 
Hi,

das beste wäre, den "Verdecker" in dem PopUp-Film unterzubringen - dann wird er selbstverständlich auch entfernt, wenn Du die geladene swf löschst.

Generell kannst Du dynamisch erstellte MovieClips auch überall per "removeMovieClip" entfernen - liegt der Verdecker auf der Hauptzeitleiste, wäre das:
Code:
_root.d.removeMovieClip();

Gruß
.
 

Neue Beiträge

Zurück