Ok, I sent a note for the last post of mine to be ignored, but it's awaiting
moderation.
anyway, the following is written more clearly. The problem is I can't
remove a listener. Probably my noob status with as3.
the remove listener works within the ENTER_FRAME fuction itself, but if I
keep calling "reCalcMeter" by clicking fast between buttons, it won't get
removed.
Can someone help?
function reCalcMeter(o:Object):void
{
var path:MovieClip = mainContent;
var targPercent:Number;
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(path.hasEventListener(Event.ENTER_FRAME))
{
trace("Listener exists using hasEventListener \n------------------");
path.removeEventListener(Event.ENTER_FRAME, animateMeter);
trace("Is there still a listener? : " +
path.hasEventListener(Event.ENTER_FRAME)) // This still returns true!
}
else
{
trace("no event listener here");
}
path.addEventListener(Event.ENTER_FRAME, animateMeter);
function animateMeter(event:Event)
{
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)
{
bar.scaleX = nSX
path.removeEventListener(event.type,animateMeter) // this works!
}
}
}
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders