我尝试在影片剪辑中加载图片并按照以下步骤更改其大小:
var loader:Loader = new Loader();
public function setProfilePicture(url:String){
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplte);
loader.load(new URLRequest(url));
addChild(loader);
}
protected function onComplte(event:Event):void
{
EventDispatcher(event.target).removeEventListener(event.type, arguments.callee);
var image:DisplayObject = (event.target as LoaderInfo).content;
image.width = 132;
image.height = 132;
}
当我用adobe flash CS5执行它时,上面的代码工作正常,但是当我尝试用浏览器(例如Chrome)打开它时,图像的大小不会改变为132x132。我尝试将addChild(loader)放在onComplete函数中,但是当我用浏览器打开它时,图像将无法加载,而使用adobe flash CS5执行仍然像以前一样。
我的建议是,当我们通过浏览器打开它时,函数onComplete不起作用,但为什么??? 任何想法都将不胜感激。
答案 0 :(得分:1)
试试这个黑客:
protected function onComplte( event:Event ):void {
EventDispatcher( event.target ).removeEventListener( event.type, arguments.callee );
var loaderInfo:LoaderInfo = LoaderInfo( event.target );
loaderInfo.loader.scaleX = 132 / loaderInfo.width;
loaderInfo.loader.scaleY = 132 / loaderInfo.height;
}
答案 1 :(得分:0)
点击此链接:actionscript3 (flash) don't load images form user file in chrome
验证它是否在Chrome以外的其他浏览器中运行。这很可能是chrome中的胡椒闪光问题
答案 2 :(得分:0)
我使用了你的onComplte函数,并且无论如何都无法访问LoaderInfo的内容属性。如果所有其他方法都失败了,通过缩放Loader,仍然可以在setProfilePicture中控制图像的大小:
public function setProfilePicture(url:String){
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplte);
loader.load(new URLRequest(url));
loader.scaleX = 10; ////
loader.scaleY = 10; ////
addChild(loader);
}