2015-08-19 3 views
2

использовать pixi.js создать спрайт икак использовать Pixi.js передачи данных в обработчик

var sprite = new PIXI.Sprite(textureSprite); 
    sprite.buttonMode = true; 
    sprite.position.x = _.provinces[0].posX; 
    sprite.position.y = _.provinces[0].posY; 
    // make the button interactive... 
    sprite.interactive = true; 
    sprite 
     // set the mousedown and touchstart callback... 
     .on('mousedown',onButtonDown) 
     .on('touchstart',onButtonDown); 

как я могу передать аргумент обработчика событий функции onButtonDown? Тот же обработчик событий может быть привязан к элементу несколько раз.

+0

Вы надеваете» t передать аргументы функции обратного вызова. Сам Pixi будет вызывать функцию обратного вызова при возникновении события. – Sevanteri

+0

Pixi вызывает функции «mousedown» и «touchstart» с одним параметром [InteractionData] (http://www.goodboydigital.com/pixijs/docs/classes/InteractionData.html). Вы можете получить информацию об этом, например тип [event] (http://www.goodboydigital.com/pixijs/docs/classes/Event.html). – Sevanteri

+0

в принципе невозможно, так как обратный вызов вызывается изнутри Pixi. Зачем вам это нужно? Исходя из ваших потребностей, у вас есть разные способы достижения результата. – pietro909

ответ

1

Как насчет использования анонимной функции?

sprite.on('mousedown',function(e) { onButtonDown(e,"hello"); }); 

Вы также можете установить свойство на вашем спрайта, а затем выбрать свойство из вашего метода onButtonDown с помощью e.target (который дает спрайт, который был взаимодействовали с):

sprite.myCustomProperty = "hello"; 

// And then in your mousedown method: 
var onButtonDown = function(e) { 
    var customProperty = e.target.myCustomProperty; 
} 
Смежные вопросы