0

私は、企業が特定のレポートをオンラインで完成できるようにする CodeIgniter アプリケーションを持っています。レポートの一部は、損傷が発生した車両に表示できることです。私は彼らが描くことができるキャンバスを持つことによってこれを行いました.

問題は、インパクトなどを示すために矢印を描く背景画像 (車) を描画する際に、非常に奇妙な動作が発生することです...

これがJavascriptです(スクリプト全体の一部として):

    var img = new Image();
    img.src = "/intranet/images/car.png";


    context.drawImage(img, 10, 5, img.width, img.height);

これはすべて vehicle_canvas.js というスクリプトの一部です。ここで、奇妙な動作が発生します。このスクリプトは

<script type="text/javascript" src="/intranet/js/vehicle_canvas.js"></script>

/intranet/application/views/view_instruction.php にあるビュー ファイル

スクリプトは車両の画像を描画していませんでしたが、他のすべてを正しく実行していましたが、突然機能しました。その理由は、誤って vehicle_canvas.js を /intranet/ ではなく別のフォルダー /intranet/pdfs/ にアップロードしたためです。 js/. /pdfs/ からスクリプトを削除すると、機能しなくなります。/pdfs/ は、ビュー ファイルまたは Javascript 呼び出しのどこにも発生しません。

何か案は?

参照用のドキュメント ツリーは次のとおりです。

/intranet/
    /pdfs/ 
    /js/  
        /application/  
            /views/  
                 view_instruction.php
4

1 に答える 1

1

物事を最も単純な形式に戻す必要があるかもしれないと思います-おそらく何かがキャッシュされているので、必ず完全に更新するなどしてください...

画像の奇妙さについては、キャンバス要素に描画しようとする前に画像が完全にロードされていないことが原因である可能性があります。ページの読み込み (または画像の読み込み) を待っている必要があります。そうしないと失敗します。何かのようなもの:

var img = new Image();
img.onload = function(){
  context.drawImage(img, 10, 5, img.width, img.height);
}
img.src = "/intranet/images/car.png";
于 2011-04-03T11:39:40.257 に答える