0

私は新しいAppMobiの世界に慣れていないので、皆さんが私を助けてくれませんか。

イメージオブジェクトを作成し、ステージに描画しました。私の問題は、オブジェクトにイベントを追加したいということです。

私は以下を使用して画像を設定しました:

function objImage(imageURL,x,y,width,height) {
    this.imgCanvas = new Image();
    this.imageURL = imageURL;
    this.loaded = false;
    this.x = x;
    this.y = y;
    this.height = height;
    this.width = width;

    this.draw = function() {

        if (this.width == null || this.height == null)
        {
            ctx.drawImage(this.imgCanvas,this.x,this.y); 
        }
        else
        {
            ctx.drawImage(this.imgCanvas,this.x,this.y,this.width,this.height);         
        }
    }
}

そして、私はそれをステージに描きました:

var usercontrols_left = new objImage('images/left.png',10,HEIGHT-100,50,50);
usercontrols_left.draw();

ここで、「usercontrols_left」にイベントを追加します。たとえば、ユーザーがイベントに触れたりクリックしたりしたことを検出します。

4

1 に答える 1

2

directCanvasを使用しているかどうかわかりません。このソリューションはどちらの方法でも機能するはずです。

タッチスタートイベントをキャプチャし、その座標によって左側の要素の位置にあるかどうかを確認します。そうである場合は、起動する必要のあるコマンドを実行します。

擬似コード:

Canvas.addEventListener('touchstart', startTouch, false);

function startTouch(){
    if(touch.x<60&&touch.x>10&&touch.y<height-50&&touch.y>height-100)
     { handleLeftControl(); }
}

編集*代わりにwebviewを使用する例:webviewでは次 のようになります。

<div id="Leftbutn" ontouchstart="AppMobi.canvas.execute('switchCommand(\'leftBTNdown\');')" ontouchend="AppMobi.canvas.execute('switchCommand(\'leftBTup\');')" ></div>

次に、directCanvas側では、スイッチまたは関数で実行したいことによってこれらのコマンドを処理するだけです。

于 2012-10-01T20:17:57.670 に答える