Skip to main content
mikeumus
Known Participant
January 12, 2009
Answered

Slow Sprites

  • January 12, 2009
  • 4 replies
  • 781 views
Continued from: " Cannot embed multiple swfs using swfObject 2"
The site referenced is @ http://www.l4dt.com/

_______________________________________________________________________

If you go to http://www.l4dt.com/ you'll see the "boomer" swf to the right. As more green sprites emerge from his mouth. Both the header rotating swf and the boomer swf slow. Why is this?

The sprites start fine, then as more occupy the screen at one shared time, everything gets slow, but there aren't even that many sprites!! lol. You'll see.

Is a possible solution to export this animation to After Effects and render it multiple times in the name of compression?

I figured this is how Adobe gets their big show off animations to run so smoothly, regardless there is surly a way to get my swfs running smoothly.

The boomer is constructed from three files:

Boomer.fla - http://www.l4dt.com/boomer.fla

Bommer.fla's document class, PxlFountain.as(courtesy of http://www.pxl.dk/flash/004.php) - http://www.l4dt.com/PxlFountain.as

GlowParticle.as - http://www.l4dt.com/GlowParticle.as

Boomer.fla bares no actionscript, although I need to know how to position him above the spawning sprites(something I'll need to know for the Poster App as well).

________________________________________________________________________________

PxlFountain.as:
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
import GlowParticle;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import boomer;


public class PxlFountain extends Sprite {

//Properties
private var _fountainTimer:Timer;
private var _timerInterval:Number;
private var _particleVelocity:Number;

//Constructor
public function PxlFountain(timerInt:Number = 150, particleVel:Number = -2) {

//Set stage
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

//Set properties
_timerInterval = timerInt;
_particleVelocity = particleVel;

//Create timer
_fountainTimer = new Timer(_timerInterval, 80);
_fountainTimer.addEventListener(TimerEvent.TIMER, spawnParticle);
_fountainTimer.start();

}

//Create a new glow particle with random velocity
private function spawnParticle(event:TimerEvent):void {

var randomParticleVelocity:Number = (_particleVelocity * Math.random()) -2;
var particle:GlowParticle = new GlowParticle(randomParticleVelocity);
addChild(particle);
}
}
}

__________________________________________________________

GlowParticle.as:
package
{
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Shape;
import flash.filters.GlowFilter;

public class GlowParticle extends Sprite {

//Properties
private var _particle:Shape;
private var _particleTimer:Timer;
private var _particleVelocity:Number;
private var _particleLifespan:Number;
private var _xPos:Number;
private var _yPos:Number;
private var _radius:Number;
private var _gravity:Number;
private var _vx:Number;
private var _vy:Number;


//Constructor
public function GlowParticle(particleVel:Number) {

//Set properties
_particle = new Shape();
_particleVelocity = particleVel;
_particleLifespan = 0;
_radius = 10 * Math.random();
_gravity = .7;
_xPos = 860;
_yPos = 60;
_vx = (Math.random() * 2 -2.4)*9;
_vy = particleVel;

//Set timer for movement and lifespan count
_particleTimer = new Timer(30);
_particleTimer.addEventListener(TimerEvent.TIMER, moveParticle);
_particleTimer.start();

}

//Calculate vectors, set new position and call draw method. Or respawn particle.
private function moveParticle(event:TimerEvent):void {
if(_particleLifespan < 300) {

_vy += _gravity;
_yPos += _vy;
_xPos += _vx;
_particleLifespan++;
drawParticle();

}
else{
respawnParticle();
}
}

//Draw the particle and set filter
private function drawParticle():void {

_particle.graphics.clear();
_particle.graphics.lineStyle(4, 0x455b00, 1);
_particle.graphics.drawCircle(_xPos,_yPos,_radius);
_particle.filters = [new GlowFilter(0x5d7c00,1,6,6,2,3)];
addChild(_particle);

}

//Respawn the particle
private function respawnParticle():void {

_particleLifespan = 0;
_xPos = 860;
_yPos = 60;
_vx = (Math.random() * 2 -2.4)*9;
_vy = _particleVelocity;
}

}
}

___________________________________________________________

The swf is being inserted into Worpress 2.7 footer.php. My Wordpress engine has 14 plugins installed and activated( I plan to go in to each plugin's code along with Wordpress' and optimize it soon). Is Wordpress a possible suspect for the slowness?

Boomer.fla's dimensions are 950 pixels in width and 625 pixels in height. I'd rather Boomer.fla only be 605x196 and set noscale and 100%x100% in hopes of the sprites reaching the user's whole screen, but they always cut off at the FLAs dimensions.
This topic has been closed for replies.
Correct answer kglad
i don't see where you doing anything to ready you glowparticles for gc. and you can enable their cacheAsBitmap property.

4 replies

kglad
Community Expert
Community Expert
January 14, 2009
i don't think fp10 is faster. if anything, it's probably slower but you could test and let us know.

to ready an object for gc you must remove it from the display list and remove all references to the object. search this forum or use google to search for some specifics.
mikeumus
mikeumusAuthor
Known Participant
January 14, 2009
And would it run any faster if compiled for Flash Player 10?
kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
January 13, 2009
i don't see where you doing anything to ready you glowparticles for gc. and you can enable their cacheAsBitmap property.
mikeumus
mikeumusAuthor
Known Participant
January 13, 2009
How would I ready the glowparticle for gc? What does that look like? (And what does gc refer too? The display list? The graphics cache?)

And what does enabling their cacheAsBitmap property look like?

Pardon my ignorance.
mikeumus
mikeumusAuthor
Known Participant
January 12, 2009
I'm not gonna let this thread die before it even starts. I'd like some input if you have the time.

Thanks.