0

我试图在影片剪辑中加载图像并更改其大小,如下所示:

    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 的功能不起作用,但是为什么???任何想法将不胜感激。

4

3 回答 3

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;
}
于 2013-02-07T12:13:59.747 回答
0

检查此链接:actionscript3(flash)不要在 chrome 中从用户文件中加载图像

验证它是否可以在除 chrome 之外的其他浏览器中运行。这很可能是chrome中的胡椒粉问题

于 2013-02-06T18:38:39.003 回答
0

我玩过你的 onComplte 函数,不知何故无法从那里访问 LoaderInfo 的 content 属性。如果一切都失败了,图像的大小仍然可以通过缩放加载器从 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);
}
于 2013-02-07T00:57:38.403 回答