1

さまざまなボタンを動的に生成する Raphael コードがあります。次に、これらのボタンに関数を登録しています。どの特定のボタンが押されたかを識別する必要があります。

Flash/AS3 では、次のように記述することで、関数を呼び出すボタンの名前を取得できます。

function myFunction (e:MouseEvent){
      trace (e.currentTarget.name);
}

ラファエルでこれを達成する同様の方法はありますか?

ありがとう。

4

1 に答える 1

0

まず、Raphael を使用しているため、Raphael オブジェクト (つまり、rect) を使用してカスタム ボタンを作成していると想定しています。

次のことができます。

  1. 2 つのグローバル変数を作成します。1 つcountは動的に作成されたボタンを保持し、もう 1 つidはクリック イベントでボタンを保持します。
  2. Raphael オブジェクトがボタンとして作成されるたびに、data() 関数を介して ID を割り当てます。

例:

// global vars
var count = 0;
var id    = 0;


// your code
var paper  = Raphael(0, 0, 1000, 1000);
var button = paper.rect(100, 100, 60, 20, 10).attr({fill: 'red'});
var text   = paper.text(130, 110, "Submit").attr({fill: '#fff'});

count++;

button.data("id", count);

// some more code

button.click(function() 
{
    id = this.data("id");
});

幸運を

于 2013-06-08T17:52:37.793 に答える