Hi All,
I've searched and read a lot about people having difficulties using
removeEventListener, but I just don't get why I'm having problems removing
one. I'm sort of new to AS3 so that would probably explain a lot.
I've tried so many variations of the following code that it probably looks
like a mess and is now inefficient, but hopefully someone more experienced
than me can identify the basic issue. I appreciate any help. - Kurt
var
create:Boolean = true;
function
reCalcMeter(o:Object):void
{
var path:MovieClip = mainContent;
var targPercent:Number;
var mc:MovieClip = new MovieClip();
path.addChild(mc);
var myData:Object = mainContent.myData;
var bar:MovieClip = mainContent.meter.bar;
var percentDisplay:Object =
path.meter.meter_points_display.txt_percent_display;
var pointDisplay:Object = path.meter.meter_points_display.txt_pts;
var startPercent:Number = 0;
var accString:String = o.points_user_accumulated
var accumulated:Number = Number(accString.split(',').join(''));
var totalPts:Number = o.point_range_high.split(',').join('');
var scale:Number = 0;
targPercent = int((accumulated/totalPts)*100)/100;
bar.scaleX = 0;
if(!mc.hasEventListener(Event.ENTER_FRAME) && create)
{
create = false
trace("should create");
mc.addEventListener(Event.ENTER_FRAME, animateMeter);
}
else
{
path.removeChild(mc);
mc.removeEventListener(Event.ENTER_FRAME, animateMeter);
trace("should die but doesnt");
}
function animateMeter(event:Event)
{
//trace("targpercent = " + targPercent);
var nSX:Number = int((bar.scaleX + .01)*100)/100;
var myNum:Number = Math.round(nSX*100);
bar.scaleX += .008;
percentDisplay.text = myNum + "%"
pointDisplay.text = accString + " pts"
if(nSX >= targPercent)
{
mc.removeEventListener(event.type,animateMeter) //this is fine - works
}
}
}
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders