PDA

Просмотр полной версии : Увеличивающаяся панель с кнопками


uzver3254
12.03.2011, 12:33
Имеется мувиклип mc1 на котором есть mc2, mc3 ... mcN. Каждый mcN является кнопкой, при нажатии на которую происходит какой-то код. Но сам по себе mc1 очень маленький, в общем контексте, и он должен увеличиваться при наведении курсора. Получается следующее:

_root.mc1.onRollOver = function() {
_root.mc1._width = _root.mc1._width*3;
_root.mc1._height = _root.mc1._height*3;
};
_root.mc1.onRollOut = function() {
_root.mc1._width = _root.mc1._width/3;
_root.mc1._height = _root.mc1._height/3;
};
_root.mc1.mc2.onPress = function() {
trace('работает');
};

но по факту получается, что mc1 увеличивается при наведении, уменьшается при уходе мыши, но кнопки на нем не работают.

Как добиться желаемого эффекта?

Добавлено через 9 часов 4 минуты
Проблема всё ещё не решена. испробовал с полдюжины методов. Получается полный бред.
Пипл, хэлп ми!

Dalass13
13.03.2011, 11:19
Попробуйте это:

zoomIn = function () {
_root.mc1._xscale = 300; // увеличение
_root.mc1._yscale = 300; // на 300%
};

zoomOut = function () {
_root.mc1._xscale = 100; // исходные
_root.mc1._yscale = 100; // размеры
};

_root.mc1.area.onRollOver = zoomIn;
_root.mc1.area.onRollOut = zoomOut;

_root.mc1.mc2.onRollOver = zoomIn;
_root.mc1.mc2.onRollOut = zoomOut;

_root.mc1.mc2.onPress = function() {
trace('работает');
};

area - мувик, который является областью выделения mc1.

Если внутри mc1 будет много вложенных клипов, то присвоить обработчики OnRollOver/onRollOut можно с помощью цикла, если нужно с этим тоже помогу

Ваша проблема заключалась в том, что когда активизируется rollOver одного мувика, вложенные мувики не могут быть выделены, так как выделен их родитель и он "важнее"

Hauts
13.03.2011, 11:25
var mcOrigWidth = _root.mc._width;
var mcRollOverWidth = mcOrigWidth * 3;
_root.mc.onMouseMove = function(){
if(this.hitTest(_root._xmouse, _root._ymouse)){
this._width = mcRollOverWidth;
} else {
this._width = mcOrigWidth ;
}
}


В as2 кнопки внутри кнопок не работают. Вешая события типа onRollOver и onRollOut на mc вы тем самым исключаете работу кнопок внутри mc.

Dalass13
13.03.2011, 11:43
что-то я сбыдлокодил по-ходу XD

hauts, а почему бы не...

_root.mc1.onMouseMove = function() {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
this._xscale = this._yscale=300;
} else {
this._xscale = this._yscale=100;
}
};

всё меньше переменных используется

uzver3254
18.06.2011, 04:29
В итоге пришлось рисовать невидимые маски над маленьким и предположительно увеличенным mc1