PDA

Просмотр полной версии : События мыши и Button


AzagThoth
02.11.2009, 01:52
Здравствуйте! Занимаюсь по книжке Гурского и сталкнулся с интересным вопросом...
В общем код такой:
Button.prototype.onMouseDown=function(){
this._xscale=this._yscale+=1;
}

function search(level:MovieClip):Void{
for(var i in level){
if(level[i] instanceof Button){
Mouse.addListener(level[i]);
}
else if(level[i] instanceof MovieClip){
search(level[i]);
}
}
}

search(_root);
Проблема в том, что растут все кнопки... Впрочем почему это происходит - мне ясно... Однако неясно как этого избежать. Хочу чтобы росла только та кнопка над которой я нажал на кнопку мыши. Метода hitTest() что есть у мувиклипа у кнопки я не обнаруживаю.

В общем если кто знает - подскажите.

udaaff
02.11.2009, 01:54
Вешайте обработчик на определенную кнопку, а не на прототип.

AzagThoth
02.11.2009, 03:10
Я не хочу на определённую кнопку вешать. Поясню - скажем у меня будет стопяцот кнопок с разными именами - некоторые вложенные в клипы в которых вложены другие клипы куда тоже могут быть вложены кнопки и называться кнопки мог как заблагарассудится. Так вот я хочу чтобы росла та кнопка на которую я жму, причём сделать это именно через Листенер мыши и ни как иначе. Скажем я определяю это как неплохую практику в обучении. Никакие иные варианты мне не подходят. Значит вопрос в том существует ли метод или свойство который может определить при его вызове(а вызвать его должно быть можно в любой момент) или обращении к нему(если это свойство) над кнопкой или нет в данный миг находится курсор мыши. Если такого нет, то вопрос в том как его можно сэмулировать, если это вообще вообще возможно.

ЗЫ: Понимаю, что вопрос дурацкий и на практике это навряд ли применимо, но мне жизненно важно знать как это замутить и именно через мышиный листенер!

udaaff
02.11.2009, 03:39
Button.onPress

AzagThoth
02.11.2009, 04:44
Гы) Я ж написал, что именно через листенер мыши хочу)) Событийный метод кнопки мне не нравится))

Добавлено через 10 часов 1 минуту
Вот так!

Button.prototype.onMouseDown=function(){
if(this._xmouse>-this._width/2 & this._ymouse>-this._width/2 & this._xmouse<this._width/2 & this._ymouse<this._height/2){
this._xscale=this._yscale+=1;
}
}

function search(level:MovieClip):Void{
for(var i in level){
if(level[i] instanceof Button){
Mouse.addListener(level[i]);
}
else if(level[i] instanceof MovieClip){
search(level[i]);
}
}
}

search(_root);