0

過去1時間解決しようとして成功しなかった問題があります。ここにコード全体があります:http://jsfiddle.net/apbEX/4/

問題: updatePoint 関数を使用すると、point.x (および point.y) が明確な理由もなく NaN になるため、ポイントが描画されません。しかし、関数 updatePoints をコメントアウトすると、通常はポイントが描画されます (point.x と y は正しい値を持っています)。これは、更新機能に何か問題があるに違いないということですが、私は間違いを見つけることができず、過去に問題なくこの機能を使用していました..

どんな助けでも大歓迎です!

更新機能:

function updatePoint(point) {
    console.log(pointList[10].x)
        point.eX = pageX - offLeft;
        point.eY = pageY - offTop;         
        var dx = (point.eX - point.origPosX);
        var dy = (point.eY - point.origPosY);
        var mag = Math.sqrt(dx * dx + dy * dy);
        point.velocityX = (dx / mag) * point.speed;
        point.velocityY = (dy / mag) * point.speed;
        point.x += point.velocityX;
        point.y += point.velocityY;       
    } 
4

1 に答える 1

0

ページがロードされ、最初に「draw」を呼び出すとき、変数「pageX」と「pageY」は「mousemove」イベント ハンドラからまだ初期化されていません。その時点では、これらのイベントは発生していません。

これは、フィドルの更新された(動作する?)バージョンです。 私が行った重要な変更は次のとおりです。

var pageX = 0;
var pageY = 0;

また、フィドルのコンテキストでコードが適切に機能するように、小さな変更を加えました。

于 2013-07-13T14:12:53.823 に答える