Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Wie remove (Child oder Listener) richtig Anwenden?“

waldmannvonritter

Nicht mehr ganz neu hier

Hallo zusammen,

in meiner Bühne befindet sich ein generierter Schneefall. Ich möchte aber das dieser beim verlassen der Bühne ausgeschaltet wird weil in der nähsten szene schmetterlinge fliegen sollen.

mit diesen varianten hab ich es probiert, doch keine klapte:
HTML:
stage.removeEventListener(Event.ENTER_FRAME, frameLoop1);

HTML:
removeChild (snowflake[0]);

HTML:
removeChild(snowflake);

HTML:
stage.removeChild(this)

und hier das script:
HTML:
import flash.events.Event;
import flash.geom.Rectangle;

var snowFlakes1 : Array = new Array();
var numFlakes1:uint = 500;
var screenArea1:Rectangle = new Rectangle(0,0,900,552);

addEventListener(Event.ENTER_FRAME, frameLoop1);

function frameLoop1(e:Event)
{

    var snowflake:SnowFlake;
    if (snowFlakes1.length < numFlakes1)
    {
        snowflake = new SnowFlake(screenArea1);
        snowFlakes1.push(snowflake);
        addChild(snowflake);

    }
    var wind : Number = ((screenArea1.width/2) - mouseX);
    wind /=  60;

    for (var i:uint = 0; i<snowFlakes1.length; i++)
    {
        snowflake = snowFlakes1[i];
        snowflake.update(wind);
    }
}

und hier die SnowFlake.as Datei:
HTML:
package 
{
    import flash.display.Sprite;
    import flash.geom.Rectangle;
    import flash.filters.BlurFilter;

    public class SnowFlake extends Sprite
    {
        public var xVel:Number;
        public var yVel:Number;
        public var size:Number;
        public var screenArea:Rectangle;
        public function SnowFlake(screenarea:Rectangle)
        {
            graphics.lineStyle(3,0xffffff);
            graphics.moveTo(0,0);
            graphics.lineTo(0.2,0.2);
            screenArea = screenarea;
            x = Math.random() * screenArea.width;

            var z:Number = (Math.random()*600)-250;
            size = calculatePerspectiveSize(z);
            scaleX = scaleY = size;
            if (z < -150)
            {
                var bluramount:Number = z + 150;
                bluramount /=  -100;
                bluramount = (bluramount * 20) + 2;
                filters = [new BlurFilter(bluramount,bluramount,2)];

            }
            else
            {
                filters = [new BlurFilter(2,2,2)];
            }
            cacheAsBitmap = true;
            xVel = (Math.random()*2)-1;
            yVel = 3;
            xVel *=  size;
            yVel *=  size;
        }
        public function update(wind:Number):void
        {
            x +=  xVel;
            y +=  yVel;
            x += (wind*size);
            if (y > screenArea.bottom)
            {
                y = screenArea.top;
            }
            if (x > screenArea.right)
            {
                x = screenArea.left;
            }
            else if (x<screenArea.left)
            {
                x = screenArea.right;
            }
        }

        public function calculatePerspectiveSize(z:Number):Number
        {
            var fov:Number = 300;
            return fov/(z+fov);
        }
    }
}

hat wer ne idee?


gruß Tomas
 

keul3

3dsMax | 3D-Contest

AW: Wie remove (Child oder Listener) richtig Anwenden?

Habs jetzt nur kurz überflogen, aber so wie ich das sehe löscht du immer nur den die letzte Instanz von SnowFlake. Ich würde die Partikel in einen Container stecken und später alle Children mit einer while-Schleife löschen. Würde in etwa so auschauen:

Code:
while (container_sp.numChildren > 0)
{
container_sp.removeChildAt(0);
}
Du köntest auch dein Array zur Hilfe nehmen um die Children gezielt mit einer Schleife zu entfernen, denke aber dass es so wie oben beschriben am schnellsten geht.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.872
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben