0

ステージの幅と高さに基づいて画像のサイズを変更するスクリプトがあります (どこで見つけたか覚えていません)。

私の問題は、サイトを開いたときに背景画像が大きく、ステージの解像度に合わないことです。ページのサイズを変更すると、スクリプトが機能し、画像のサイズが変更されます。Web サイトに最初にアクセスしたときにサイズを変更するにはどうすればよいですか?

これが私のコードです:

resizeImage = function (getResizeClip)
{
    //eval(getResizeClip);
    stageWidth = Stage.width;
    stageHeight = Stage.height;
    bgWidth = eval(getResizeClip)._width;
    bgHeight = eval(getResizeClip)._height;
    heightRatio = stageWidth / bgWidth;
    widthRatio = stageHeight / bgHeight;
    if (heightRatio < widthRatio)
    {
        eval(getResizeClip)._width = widthRatio * bgWidth;
        eval(getResizeClip)._height = widthRatio * bgHeight;
    }
    else
    {
        eval(getResizeClip)._width = heightRatio * bgWidth;
        eval(getResizeClip)._height = heightRatio * bgHeight;
    }
};

この:

myListenerload = new Object();
myListenerload.onResize = function() {

loader._x = Stage.width / 2;
loader._y = Stage.height / 2;   

   resizeImage(eval(bkg_container));

};
Stage.addListener(myListenerload);
myListenerload.onResize();

このコードをそのままにしてみましresizeImage(eval(bkg_container));たが、何も起こりません。

4

1 に答える 1

0

とはbkg_container? ムービークリップ?

それが何であれ、「onload」イベントをそれにバインドし(Loaders にはこれがあり、画像をロードするために使用している可能性があります)、そのメソッドを呼び出す必要があります。画像が読み込まれる前に呼び出すと、幅と高さが0両方になるためです。したがって、サイズ変更は何もしません。

画像ローダーのインスタンスでのようなもの:

on (load) {
    _root.resizeMe(this);
}

更新:bkg_containerがムービー クリップの場合はloadMovie、背景の読み込みに使用していると思います。その場合、onLoad イベント リスナーを追加することはできません。追加する必要があります。onEnterFrameまたは、setTimeoutロード時にムービーの速度が低下しないようにする必要があります。

これを使用せず、Loaderコンポーネントを使用して完全なイベント ハンドラーをアタッチすることをお勧めします (申し訳ありませんloadが、 である必要があります。それcompleteはローダー専用です)。そうすれば、進行状況イベント ハンドラーを追加して、読み込みバーなどを表示することもできます...

MovieClipLoaderあなたが調べたいと思うかもしれないものもありますが、私はそれを使用したことはありません. 考え方は同じです。

于 2012-05-17T21:30:18.967 に答える