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 に変わりません。onComplete 関数に addChild(loader) を入れてみたのですが、今度はブラウザで開くと画像すら読み込まれず、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(フラッシュ)は、クロムのユーザーファイルから画像をロードしません

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 に答える