[转]有关FP的“警告: 滤镜将不进行呈现。DisplayObject 的应用了滤镜的尺寸过大,无法绘制。”警报

以前的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); 

}



无语……发现越写越马虎,以前最基本的判断都开始忽略了……


希望能给同样错误的情况一些启发

你可能感兴趣的:(Google,FP)