AS2 Symbol wird nicht korrekt dupliziert

S

starfoxfs

Hi zusammen,

Ich hab mir dieses kleine Script geschrieben um ein fallendes Blatt von einem Baum zu simulieren.

Wenn ich die Anzahl pAnzahl auf 1 setze müsste ich 1 Blatt sehen, wenn 5 gesetzt sind dann 5 Blätter.

Problem was ich nun habe das ich erst ab pAnzahl 4 1 Blatt sehe und drunter garkeins, es werden dann auch nicht mehr wie 1 Blatt auch wenn die Anzahl hochgesetzt wird.

PHP:
MovieClip.prototype.herbstsimulation = function(pSymbol, pX, pY, pAnzahl)
{		
	for (var i = 0; i < pAnzahl; i++)
	{
		
		
		this.blatt = this.attachMovie (pSymbol, "blatt" + (i + 1), i);	
		this.blatt._x = pX;
		this.blatt._y = pY;
		this.blatt.vx = 0;
		this.blatt.vy = 0;
		this.blatt.onEnterFrame = herbstbewegung;
		
    }
	function herbstbewegung ()
	{
			
		this._x = this._x;
		this._y = this._y +1;
		this._rotation = this._rotation +5;
		this._xscale = this._xscale +1;
		
		
		 }
}

ASSetPropFlags (MovieClip.prototype, "herbstsimulation", 1);


// Hier der Aufruf
this.herbstsimulation ("blatt", 180, 200, 1);
 
Hey,
nimm mal als Tiefe nicht einfach i, sondern _root.getNextHighestDepth(). Es kann sein, dass die Tiefen von 0-2 (pAnzahl 1-3) schon belegt sind und die Blätter zwar erstellt, aber wegen der fehlerhaften Tiefe nicht angezeigt werden.

Ansonsten verstehe ich diesen Satz nicht: ;)
es werden dann auch nicht mehr wie 1 Blatt auch wenn die Anzahl hochgesetzt wird.
 
Code:
this.blatt = this.attachMovie (pSymbol, "blatt", _root.getNextHighestDepth());

habe ich probiert aber hat nicht den gewünschten Erfolg gebracht, ist immernoch nur 1 Blatt zu sehen.
 
Ich hab mal ein Test.fla gemacht damit man nicht durch die verschiedenen Ebenen durcheinander kommt.
 

Anhänge

  • test.fla
    34 KB · Aufrufe: 22
Du erstellt 5 Blätter mit dem selben Namen "blatt", welche dann halt nichtmehr wirklcih angesprochen werden können. Außerdem erscheinen sie alle an exakt der selben Stelle, sodass sie halt alle übereinander liegen udn man nur "eines" sieht. Man müsste also die Instanznamen nummerieren (i bietet sich da an) und die MCs etwas verschieben - ich hab das mal etwas stümperhaft über 10*i gemacht, Math.random() sollte hier aber seine Dienste besser tun!

So gehts also:

Code:
   for (var i = 0; i <= pAnzahl; i++) 
    { 
        this.attachMovie (pSymbol, "blatt" + i, _root.getNextHighestDepth());     
        this["blatt" + i]._x = pX + 10 * i; 
        this["blatt" + i]._y = pY; 
        this["blatt" + i].vx = 0; 
        this["blatt" + i].vy = 0; 
        this["blatt" + i].onEnterFrame = herbstmoveit;        
    }

Komischerweise hast du im obigen Code die Namen noch nummeriert, in der geposteten fla nicht mehr. :)

Achso - man kann natürlich eine Referenz zu dem erstellen Movieclip machen, wie du es ja mit this.blatt = this.attachMovie probiert hast - da ist es aber mehr als misslich, wenn der MC und die Variable gleich heißen.
 
PHP:
MovieClip.prototype.herbstsimulation = function(pSymbol, pX, pY, pAnzahl)
{		
	for (var i = 0; i <= pAnzahl; i++) {

       this.attachMovie(pSymbol, "blatt" +i, _root.getNextHighestDepth());     
       this["blatt"+i]._x = pX +10 * i;
	   this["blatt"+i]._y = pY;
	   this["blatt"+i].vx = 0;
	   this["blatt"+i].vy = 0;
	   this["blatt"+i].onEnterFrame = herbstbewegung;
		
		
    }
	function herbstbewegung ()
	{
			
		this._x = this._x;
		this._y = this._y +1;
		this._rotation = this._rotation +5;
		this._xscale = this._xscale +1;
		
		
		 }
}

ASSetPropFlags (MovieClip.prototype, "herbstsimulation", 1);


// Hier der Aufruf
this.herbstsimulation ("blatt", 180, 200, 5);

Ok immerhin habe ich jetzt 2 Blätter :D, ich denke die weiteren 3 werden direkt unter dem 2ten Blatt jetzt angezeigt. Komisch ist nur wenn ich die Anzahl auf 1 setze wird garkein Blatt angezeigt.
 
Komisch - bei mir werden 5 Blätter ohne Probleme angezeigt. Ich glaube da ist in deiner fla irgendwas mit anderen Movieclips im Argen, vielleicht gibt es ja schon ein paar MCs, die blatt1 oder so heißen? Vom Code her müsste es klappen, hat es ja auch in der angehängten fla.
 
Ok muss ich nochmal prüfen, aber Danke für die viele Hilfe hast mir sehr weitergeholfen :D
 

Neue Beiträge

Zurück