0

画像のプリロードと、ロード時の設定に少し問題があります。onLoad(またはjQuery $( "img")。load()-thingy)イベントを使用して、画像が読み込まれたことを検出します。これは、iPad / iPhoneで試してみる場合を除いて、ほとんどのブラウザで正常に機能します。どういうわけか、onErrorイベントをスローするだけです(エラーが何であるかについての説明はありません!)。しかし、onErrorイベントで画像にリダイレクトすると、問題なく表示されます。非常に奇妙で、何が原因なのか理解できないようです。

いくつかのコード:

if( !limg ) {
    var load = function($img) {
        setTimeout(function() {
            var src = $img.attr("src");
            video.trigger(filmLoad, [s]);
            if (((src.indexOf(url) >= 0 && urlIsString) || !urlIsString) 
                && src.indexOf("_low.") >= 0)
            {
                $img.attr(
                    "src", 
                    urlIsString 
                        ? url.replace("_low.", "_high.") 
                        : set.film.url.high);
                still = stillIsString 
                    ? still.replace("_low.", "_high.") : set.film.still.high;
            }
        }, 0);
    };

    limg = s.loaderimg = $("<img>")
        .appendTo(video)
        .css({opacity: 0, position: "absolute", left: "-200em"})
        .load(function(e) { load($(this)); })
        .error(function(e) { if(e.target.complete) { load($(this)); } })
        .src("src/to/my/image.jpg");
}
4

2 に答える 2

1

ファイルを使用している場合.manifestは、画像のURLをファイルに入れる必要があります。

于 2011-06-23T15:00:14.227 に答える
1

こんにちは、私自身の質問に答えるだけです:

iPad にはダウンロードできる画像のサイズに制限があることがわかりました。また、私の画像が非常に大きい (サイズに関して) ため、ダウンロードできませんでした。画像は実際には小さなフィルムストリップで、高さは 14000 ピクセルを超え、幅は約 600 ピクセルです。そのため、iPad はロード時にエラーをスローし、ダウンロードをスキップしました。画像があまり高くならないように、画像をより正方形にしようとしましたが、それでもエラーが発生しました。解決策は、画像を小さなチャンクに分割することでした。iPad で 600x6000 ピクセル程度のサイズの画像が許可されていることを発見したからです。したがって、フィルムストリップを 600x4500 ピクセル程度の小さな画像に分割すると、うまく機能しました。

結論として、iPad が画像のダウンロードを拒否する場合は、バイト単位または次元単位でサイズが大きすぎる可能性があります。

于 2011-06-25T15:06:29.017 に答える