Was ist hier los? Attach>Duplicate...

SonMiko

Erfahrenes Mitglied
Bin bei einer Entwicklung auf etwas Merkwürdiges gestoßen.
Man muss es sich ansehen, schwer zu erklären.

Wieso, trägt der rechte Kreis nach der Duplizierung NICHT
die Eigenschaft, das der Halbkreis zu 50% Transparent ist?


Liebe Grüße,


Euer

Mike
 

Anhänge

Hi,

Änderungen an Objekten werden von duplicateMovieClip grundsätzlich ignoriert. Wenn Du die duplicateMovieClip-Methode des MovieClip-Objekts verwendest, kannst Du als dritten Parameter ein Objekt angeben, dessen Eigenschaften in das Duplikat kopiert werden:
Code:
var kreis2_mc = kreis_mc.duplicateMovieClip("kreis2_mc", this.getNextHighestDepth(), kreis_mc);

In Deinem Fall bringt das nicht viel, da Du nicht direkt eine Eigenschaft des Ursprungsobjekts geändert hast, sondern die eines Unterobjekts (halbkreis_mc).

Mit folgendem Prototype kannst Du auch Eigenschaften, die tiefer verschachtelte Objekte betreffen nach einer Duplikation in das neue Objekt kopieren. Standard-MovieClip-Eigenschaften, die Du mitkopieren willst, musst Du allerdings per Hand in einem Array (std_props) eintragen:
Code:
MovieClip.prototype.getRekursiveProps = function(dest) {
	var std_props = ["_alpha", "_rotation", "_x", "_y", "_xscale", "_yscale", "_visible"];
	if (typeof(dest) == "movieclip") {
		for (var i in std_props) {
			this[std_props[i]] = dest[std_props[i]];
		}
	}
	for (var i in dest) {
		if (typeof(dest[i]) != "movieclip" && typeof(dest[i]) != "object") {
			this[i] = dest[i];
		} else {
			this[i].getRekursiveProps(dest[i]);
		}
	}
}
Kopiere diesen Code an den Anfang Deines Films, und rufe die Methode dann für das Duplikat auf:
Code:
kreis2_mc.getRekursiveProps(kreis_mc); // kopiert alle Eigenschaften aller Unterobjekte

Gruß
.
 
Zurück