Простите меня, я изучал узел и js за последние несколько дней, пришел из C#/единства, и все немного отличается от того, что я знаю. Я делаю совместную драм-машину, у меня 90% работы: http://ec2-54-194-29-66.eu-west-1.compute.amazonaws.com:9000/вопрос с отправкой данных о событиях с щелчком по socket.io
У меня есть сервер узла, который работает с нажатиями клавиш и координатами мыши, однако у меня есть проблема с отображением щелчка мыши событие, я регистрирую клик в консоли других подключений и сервера, но, похоже, я не совсем понимаю, правильно ли отправил содержимое событий. Я не могу написать var data = list: e.classList и прочитать data.list, чтобы увидеть то же самое?
Вот код, который я пытался получить работу, но я получаю не могу прочитать сообщение об ошибке свойства:
function newMouseOn(data)
{
console.log("Is this working Click On?" + data.target);
data.list.add('active');
//clickPlayOn(data);
data.target.play();
}
function newMouseOff(data)
{
console.log("Is this working ClickOff?" + data.target);
//clickPlayOff(data);
data.list.remove('active');
}
socket.on('mouseOn', newMouseOn);
socket.on('mouseOff', newMouseOff);
function clickPlayOn(e)
{
var data = {
id: e.target.id,
timeStamp: e.timeStamp,
type: e.type,
target: e.target,
list: e.classList
}
socket.emit('mouseOn', data);
e.target.classList.add('active');
e.target.play();
}
function clickPlayOff(e)
{
var data =
{
id: e.target.id,
timeStamp: e.timeStamp,
type: e.type,
target: e.target,
list: e.classList
}
socket.emit('mouseOff', data);
e.target.classList.remove('active');
}
server side:
socket.on('mouseOn', MouseClick);
socket.on('mouseOff', MouseClicked);
function MouseClick(data)
{
socket.broadcast.emit('mouseOn', data);
console.log(data);
}
function MouseClicked(data)
{
socket.broadcast.emit('mouseOff', data);
console.log(data);
}
Я был первоначально пытается просто испускать е или e.target вместо этой структуры данных, но похоже, не работает. Кто-нибудь получил какие-то идеи о том, что мне не хватает? (кроме мозга)
ok Я думаю, что у вас есть, это просто отправка куча текста и никаких методов, что делать. поэтому я вместо этого: btn [e.target.id] .classList.add ('active'); btn [e.target.id] .play(); и мои кнопки устанавливаются: для (вар я = 0; я
Richop
Извините, я не углубился в остальную часть вашего кода, в любом случае вам нужно передать данные, чтобы понять, что играть на другой стороне клиента, например, идентификатор кнопок или звуков и т. Д. Я думаю, что нет петель возможны, если вы выходите из 'clickPlayOn' и получаете его в' newMouseOn' –
Я пробовал это, отправляя идентификатор кнопки и в части ClickPlayOn, я хочу просто добавить индекс кнопки что-то вроде 'btn [i] .addEventListener ('mousedown', clickPlayOn (index: i));' Могу ли я добавить индекс внутри этой функции (e), как правило, это как 'clickPlayOn()' выше, но функция имеет clickPlayOn (e), я считаю, что это событие, могу ли я на него наброситься? что такое синтаксис, я получаю что-то о недостающем) после списка аргументов, когда вы экспериментируете с бит выше. Спасибо за вашу помощь, очень любезно с вашей стороны. – Richop