PDA

Просмотр полной версии : 'Клик' за областью кнопки. Как сделать?


dmitriev
27.06.2007, 20:57
Привет!

Такая тема. Аттачиться несколько кнопок вот так:

function createSizeCombo (array) {

for(var i=0;i<array.length;i++) {
this.addBox.attachMovie('simpleBox', 'box'+i, i, { _x: 0, _y: 20*i })
//Заполняем нужной инфой
this.addBox['box'+i].title.text = sizes[i]
this.addBox['box'+i].color = colors[i]

if(colors != undefined) {
var my_color:Color = new Color(this.addBox['box'+i].bground)
my_color.setRGB(colors[i])
}
else
{
var my_color:Color = new Color(this.addBox['box'+i].bground)
my_color.setRGB(0xFFFFFF)
}

// var color:Color = new Color(this.addBox['box'+i]);
// color.setRGB(0x123456); // my_mc turns red



// trace(this.mainBox.bground)




//Наведение на элемент
this.addBox['box'+i].onRollOver = function () {
this.gotoAndPlay(2)
}
this.addBox['box'+i].onRollOut = function () {
this.gotoAndPlay(11)
}
this.addBox['box'+i].onDragOut = function () {
this.gotoAndPlay(11)
}
//Нажатие на элемент
this.addBox['box'+i].onRelease = function () {
mainBox.title.text = this.title.text

if(this.color != undefined) {
var my_color:Color = new Color(mainBox.bground)
my_color.setRGB(this.color)
}
else
{
var my_color:Color = new Color(mainBox.bground)
my_color.setRGB(0xFFFFFF)
}

closeCombo()
}
// var target = this.addBox['box'+i]._y
// var target:Number = this.addBox['box'+2]._y
// onMouseDown = function (traget:Number) {
// trace(target)
// if(_ymouse<target) {
// closeCombo()
// trace(1)
// }
// }
}

setMask()
}

нужно чтобы при клике за областью кнопок вызывалась функция closeCombo()

Спасибо.

BigDan
27.06.2007, 21:01
добавь событие к _parent. Типа так:
this._parent.onMouseDown = function(){
close();
}

dmitriev
27.06.2007, 21:25
Работает, только для последнего созданного, почему?

BigDan
27.06.2007, 21:29
потому что надо учитывать область видимости

dmitriev
01.07.2007, 11:53
Как для каждой кнопки сделать так?

Север
02.07.2007, 14:51
событие onReleaseOutside для каждой напиши
или событие onMouseUp