1

そのため、作成しているスクリプトでのイベント処理に問題があります。全体がクロームで正常に動作しており、サファリでは非常にゆっくりと動作しますが、それでも動作します。Firefoxでは、イベントの1つがまったく機能していません。

基本的に、ページの読み込み時に、一連のイベントリスナーを作成しています。

canvasElem.addEventListener("mousedown",down,false);
canvasElem.addEventListener("mouseup",up,false);
canvasElem.addEventListener("mousemove",move,false);

これらのイベントリスナーは機能しますが、イベントリスナーの1つ(down関数を呼び出す)は、次の2行のコードのために途中で実行を停止します。

dXImgSpin=(centerXImgSpin-expansionOffsetXImgSpin)-(window.event.clientX);
dYImgSpin=(centerYImgSpin-expansionOffsetYImgSpin)-(window.event.clientY);

今私は理解しています(私はプログラミングに慣れていないので、まだ少し頭がおかしいです)これはFirefoxでは機能しません。W3CモデルではなくIE DOMモデルを使用しているためですが、私が問題を抱えていたプログラム、/ * event.pageXはFirefoxでは機能しませんが、Chromeでは機能します* /イベントの処理方法を変更することで修正し(別名、canvasEleem.addEventListenerを追加)、次にコード行

event = event || window.event;

window.event.clientXをevent.clientXだけに変更します。ただし、この別の関数でこれを実行しようとすると、上記のコード行も実行されません。

何か助けになります。この質問の言い回しが適切でない場合は申し訳ありませんが、現在のjavascriptの理解にはほとんど壁があり、それを乗り越える方法がわかりません。他に必要な情報がありましたら、遠慮なくお知らせください。

アイザック

ダウンが押されたときのコードの完全なフロー:

canvasElem.addEventListener("mousedown",down,false);

function down(){

mouseDown=1;

getNewAngle();

angleMomentumImgSpin=.005;

}

getNewAngle()関数が問題です。

function getNewAngle(){

    dX2ImgSpin=dX1ImgSpin;
    dY2ImgSpin=dY1ImgSpin;
    dX1ImgSpin=dXImgSpin;
    dY1ImgSpin=dYImgSpin;



    //THESE ARE THE PART THAT ARE CAUSING THE PROBLEM
    dXImgSpin=(centerXImgSpin-expansionOffsetXImgSpin)-(window.event.clientX);
    dYImgSpin=(centerYImgSpin-expansionOffsetYImgSpin)-(window.event.clientY);


    //This if statement is to avoid the drawing from flipping when the mouse crosses the halfwaypoint
    if (dXImgSpin>0){
    angleImgSpin=(Math.atan((dYImgSpin/dXImgSpin))-angleStartImgSpin);
    }else{angleImgSpin=(Math.atan((dYImgSpin/dXImgSpin))-angleStartImgSpin+(Math.PI))}
    //alert(angle);

}
4

0 に答える 0