Note that there are some explanatory texts on larger screens.

plurals
  1. POStopping an actionscript animation
    primarykey
    data
    text
    <p>How do you stop an autoloop animation that is based on actionscript and not on movieclip? I already tried adding a stop on the end frame but didn't work. I'm using actionscript 3.0 by the way.</p> <pre><code>init(); function init():void { displayWidth = 785; displayHeight = 285; waitCount = 100; minWait = 10; maxWait = 130; count = waitCount - 1; flareList = new Particle3DList(); sparkList = new Particle3DList(); maxDragFactorFlare = 0.6; maxDragFactorSpark = 0.6; maxNumSparksAtNewFirework = 3000; gravity = 0.03; maxNumFlares = 90; maxNumSparksPerFlare = 2; topMargin = 6; displayHolder = new Sprite; displayHolder.x = 100; displayHolder.y = 0; sparkBitmapData = new BitmapData(displayWidth, displayHeight, true, 0x00000000); sparkBitmap = new Bitmap(sparkBitmapData); var alphaToWhite:Number = 0.5; var alphaMult:Number = 1.6; var cmf:ColorMatrixFilter = new ColorMatrixFilter([1,0,0,alphaToWhite,0, 0,1,0,alphaToWhite,0, 0,0,1,alphaToWhite,0, 0,0,0,alphaMult,0]); sparkBitmap.filters = [cmf]; sky = new Sprite(); starLayer = new Sprite(); starLayer.x = 0; starLayer.y = 0; starLayer.blendMode = BlendMode.LIGHTEN; var k:int; var starGray:Number; var starY:Number; for (k = 0; k &lt; 100; k++) { starY = Math.random()*(displayHeight - 2); } var skyline:Sprite = new McSkyline() as Sprite; skyline.x = 1000; skyline.y = 1000; var frame:Shape = new Shape(); frame.graphics.drawRect(0,0,displayWidth,displayHeight); frame.x = displayHolder.x; frame.y = displayHolder.y; this.addChild(displayHolder); displayHolder.addChild(sky); displayHolder.addChild(starLayer); displayHolder.addChild(sparkBitmap); displayHolder.addChild(skyline); this.addChild(frame); darken = new ColorTransform(1,1,1,0.87); blur = new BlurFilter(4,4,1); origin = new Point(0,0); //used in filters colorList = new &lt;uint&gt;[0x68ff04, 0xefe26d, 0xfc4e50, 0xfffae7, 0xffffff, 0xffc100, 0xe02222,0xffa200,0xff0000,0x8aaafd,0x3473e5, 0xc157b7,0x9b3c8a, 0xf9dc98, 0xdc9c45, 0xee9338]; this.addEventListener(Event.ENTER_FRAME, onEnter); } function onEnter(evt:Event):void { count++; if ((count &gt;= waitCount)&amp;&amp;(sparkList.numOnStage &lt; maxNumSparksAtNewFirework)) { </code></pre> <p>randomizer </p> <pre><code>waitCount = minWait+Math.random()*(maxWait - minWait); fireworkColor = randomColor(); count = 0; flareOriginX = 125 + Math.random()*300; flareOriginY = 90 + Math.random()*90; var i:int; var sizeFactor:Number = 0.1 + Math.random()*0.9; numFlares = (0.25+0.75*Math.random()*sizeFactor)*maxNumFlares; for (i = 0; i &lt; numFlares; i++) { var thisParticle:Particle3D = flareList.addParticle(flareOriginX, flareOriginY,0); theta = 2*Math.random()*Math.PI; phi = Math.acos(2*Math.random()-1); mag = 8 + sizeFactor*sizeFactor*10;//sizeFactor*(60 + 3*Math.random()); thisParticle.vel.x = mag*Math.sin(phi)*Math.cos(theta); thisParticle.vel.y = mag*Math.sin(phi)*Math.sin(theta); thisParticle.vel.z = mag*Math.cos(phi); thisParticle.airResistanceFactor = 0.015; //envelope - this determines how long a flare will live. thisParticle.envelopeTime1 = 45 + 60*Math.random(); thisParticle.color = fireworkColor; } } particle = flareList.first; while (particle != null) { nextParticle = particle.next; dragFactor = particle.airResistanceFactor*Math.sqrt(particle.vel.x*particle.vel.x + particle.vel.y*particle.vel.y + particle.vel.z*particle.vel.z); if (dragFactor &gt; maxDragFactorFlare) { dragFactor = maxDragFactorFlare; } particle.vel.x += 0.05*(Math.random()*2 - 1); particle.vel.y += 0.05*(Math.random()*2 - 1) + gravity; particle.vel.z += 0.05*(Math.random()*2 - 1); particle.vel.x -= dragFactor*particle.vel.x; particle.vel.y -= dragFactor*particle.vel.y; particle.vel.z -= dragFactor*particle.vel.z; particle.pos.x += particle.vel.x; particle.pos.y += particle.vel.y; particle.pos.z += particle.vel.z; particle.age += 1; if (particle.age &gt; particle.envelopeTime1) { particle.dead = true; } if ((particle.dead)||(particle.pos.x &gt; displayWidth) || (particle.pos.x &lt; 0) || (particle.pos.y &gt; displayHeight) || (particle.pos.y &lt; -topMargin)) { flareList.recycleParticle(particle); } else { numSparks = Math.floor(Math.random()*(maxNumSparksPerFlare+1)*(1 - particle.age/particle.envelopeTime1)); for (i = 0; i &lt; maxNumSparksPerFlare; i++) { randDist = Math.random(); var thisSpark:Particle3D = sparkList.addParticle(particle.pos.x - randDist*particle.vel.x, particle.pos.y - randDist*particle.vel.y, 0, 0); thisSpark.vel.x = 0.2*(Math.random()*2 - 1); thisSpark.vel.y = 0.2*(Math.random()*2 - 1); thisSpark.envelopeTime1 = 10+Math.random()*40; thisSpark.envelopeTime2 = thisSpark.envelopeTime1 + 6 + Math.random()*6; thisSpark.airResistanceFactor = 0.2; thisSpark.color = particle.color; } } particle = nextParticle; } sparkBitmapData.lock(); //old particles will not be erased. Instead we will apply filters which more gradually fade out the particles. sparkBitmapData.colorTransform(sparkBitmapData.rect, darken); sparkBitmapData.applyFilter(sparkBitmapData, sparkBitmapData.rect, origin, blur); spark = sparkList.first; while (spark != null) { nextSpark = spark.next; dragFactor = spark.airResistanceFactor*Math.sqrt(spark.vel.x*spark.vel.x + spark.vel.y*spark.vel.y); if (dragFactor &gt; maxDragFactorSpark) { dragFactor = maxDragFactorSpark; } spark.vel.x += 0.07*(Math.random()*2 - 1); spark.vel.y += 0.07*(Math.random()*2 - 1) + gravity; spark.vel.x -= dragFactor*spark.vel.x; spark.vel.y -= dragFactor*spark.vel.y; spark.pos.x += spark.vel.x; spark.pos.y += spark.vel.y; spark.age += 1; if (spark.age &lt; spark.envelopeTime1) { sparkAlpha = 255; } else if (spark.age &lt; spark.envelopeTime2) { sparkAlpha = -255/spark.envelopeTime2*(spark.age - spark.envelopeTime2); } else { spark.dead = true; } if ((spark.dead)||(spark.pos.x &gt; displayWidth) || (spark.pos.x &lt; 0) || (spark.pos.y &gt; displayHeight) || (spark.pos.y &lt; -topMargin)) { sparkList.recycleParticle(spark); } sparkColor = (sparkAlpha &lt;&lt; 24) | spark.color; presentAlpha = (sparkBitmapData.getPixel32(spark.pos.x, spark.pos.y) &gt;&gt; 24) &amp; 0xFF; if (sparkAlpha &gt; presentAlpha) { sparkBitmapData.setPixel32(spark.pos.x, spark.pos.y, sparkColor); } spark = nextSpark; } sparkBitmapData.unlock(); grayAmt = 4 + 26*sparkList.numOnStage/5000; if (grayAmt &gt; 30) { grayAmt = 30; } sky.transform.colorTransform = new ColorTransform(1,1,1,1,grayAmt,grayAmt,1.08*grayAmt,0); } function randomColor():uint { var index:int = Math.floor(Math.random()*colorList.length); return colorList[index]; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload