这真让我难过:我有一个小应用程序,允许用户放大/缩小,旋转,水平翻转和操纵照片的颜色。照片通过Loader类加载。该应用程序在开发环境中完美运行,但如果在浏览器中测试失败。我做了一点调试,我注意到矩阵计算中的一个值等于dev环境中的正值,但在浏览器中是负值(在完全相同的条件下)。我在这里错过了什么?
以下是我在测试期间调用的两个函数的代码:
function zoomOut(e:MouseEvent):void{
matrix = imageLoader.content.transform.matrix;
imageLoader.content.scaleY = imageLoader.content.scaleY*.90;
imageLoader.content.scaleX = imageLoader.content.scaleX*.90;
statusText.text = imageLoader.content.scaleY.toString();
if(matrix.a < 0){
matrix.a = -1*imageLoader.content.scaleY;
matrix.tx = imageLoader.content.width;
}else{
matrix.a = imageLoader.content.scaleY;
}
matrix.d = imageLoader.content.scaleX;
matrix.transformPoint(newPoint(imageLoader.content.width/2,imageLoader.content.height/2));
imageLoader.content.transform.matrix = matrix;
}
function flipHorizontal(e:MouseEvent):void {
matrix =imageLoader.content.transform.matrix;
matrix.transformPoint(new Point(imageLoader.content.width/2,imageLoader.content.height/2));
if (matrix.a>0) {
matrix.a=-1*matrix.a;
matrix.tx=imageLoader.content.width+imageLoader.content.x;
} else {
matrix.a=-1*matrix.a;
matrix.tx=imageLoader.content.x-imageLoader.content.width;
}
imageLoader.content.transform.matrix=matrix;
}
据我所知,imageLoader.content.scaleY在浏览器环境中的表述方式不同。
非常感谢你的帮助。
杰森
答案 0 :(得分:2)
最可能的事情是在图像完全加载之前调用在loader.content上运行的函数,结果是零和NaN值会弄乱你的进程。
尝试禁用此功能,直到加载图像并且Loader.contentLoaderInfo已调度其COMPLETE事件为止。