以前的player版本,印象中就没有这类错误,今次做项目,遇到了一个这类错误报警,google无解。
于是查找代码看看哪有错误,发现很正常
public function ProgressLoader(iw:Number=202)
{
super();
var sp:MovieClip=new MovieClip();
sp.graphics.beginFill(0x399dce);
sp.graphics.drawRect(0,0, iw, 8);
sp.graphics.endFill(); var g:DropShadowFilter = new DropShadowFilter(1, 90, 0x000000, 1, 4, 4, 1, 1,true);
sp.filters = [g];
inner = new MovieClip();
inner.graphics.beginFill(0xFFFFFF);
inner.graphics.drawRect(0, 0, iw, 8);
inner.graphics.endFill();
g = new DropShadowFilter(1, 90, 0x000000, 1, 2, 2, 1, 3, true);
inner.filters = [g];
inner.scaleX = .01;
sp.addChild(inner);
addChild(sp);
}
public function reset():void {
inner.scaleX = .01;
}
public function update(percent:Number):void {
inner.scaleX = percent;
}
于是苦思不得其解,到底这是为什么呢?
经过好几十分钟的研究,结果大跌眼镜…… ,原来这个class确实是没问题的,答案是用了update函数的percent出现了infinity值,就是这里
protected function loadProgress(e:BulkProgressEvent):void {
initLoader.update(e.bytesLoaded/e.bytesTotal);
}
于是,简单的加一句判断就可解决
protected function loadProgress(e:BulkProgressEvent):void {
if(e.bytesTotal>0)initLoader.update(e.bytesLoaded/e.bytesTotal);
}
无语……发现越写越马虎,以前最基本的判断都开始忽略了……
希望能给同样错误的情况一些启发