PDA

Просмотр полной версии : Панель управления для слайд-шоу


temych267
02.02.2008, 00:17
Вот уже слайд шоу написал, простенькую панель управления нарисовал. Зотелось бы добавить немного красоты и удобство.
В 2х словах есть панель управления - у нее есть прямоугольник в бэкграунде, и три кнопки (вперед, назад, авто). Панель управления - movieClip - т.е. вся панель - это мувиклип, включающий в себа и бэкграунд и кнопки. Хочу сделать чтобы панель отображалась полупрозрачно, но когда на нее наводится мышка то как бы проявлялась т.е. _alpha=100.
попробывал

menu_container._alpha = 50;
menu_container.onRollOver (){
var alphaTween = new mx.transitions.Tween(menu_container, "_alpha",
mx.transitions.easing.Regular.easeOut, 50, 100, 1, true);
}

ну и обратная функция на menu_container.onRollOut() повешена.
С проявлением и затемнением вопросов нет.
Но когда я вешаю эти события - кнопки на панеле управления (т.е. на этом menu_container) перестают работать. Т.е. я понимаю что события родительского movieClip перекрывают кнопочные. Вот вопрос - как сделать чтобы кнопки продолжали работать.

Заранее спасибо.

Molecula
02.02.2008, 04:29
Поставить панель ЗА кнопки.
Как вариант ставить на РоллАут панели флаг, проверяя сроловерили мы по направлению к кнопкам, или по направлению к области за общей панелью.

temych267
05.02.2008, 20:54
Поставить панель ЗА кнопки.
Как вариант ставить на РоллАут панели флаг, проверяя сроловерили мы по направлению к кнопкам, или по направлению к области за общей панелью.

Нет наверное я плохо объяснил.
Панель управления включает в себя кнопки (которые коненчо же находятся спереди фона панели), соответственно если мы наводим на панель то она проявляется вместе с кнопками. А если я кнопки вынесу в отдельный клип, то как мне сделать чтобы они тоже затемнялись при отводе мышки и проявлялись когда мышка на панель наводится?

Про флаг вообще не поня, сорри.

Ostgur
05.02.2008, 22:04
флаг

mc4a = 1;
button.onRelease = function(){
if(mc4a ==1){
//действие при mc4a=1
mc4a = 0;
} else {
//действие при mc4a=0
mc4a = 1;
}
};

Molecula
05.02.2008, 22:18
temych267, отправил ответ в личку.

olexandr
05.02.2008, 23:45
нужно проверять через hitTest
rollOver не поможет, потому что в таком случае при наведении на кнопку (отведении с панели!) будет срабатывать rollOut
при hitTest такой неприятности не возникнет

Molecula
06.02.2008, 00:02
потому что в таком случае при наведении на кнопку (отведении с панели!) будет срабатывать rollOut
Флаги ставим тогда.

temych267
06.02.2008, 00:22
Щас сам сидел и разбирался, допер что надо 2 флага чтобы понимать откуда и куда движется мышь.
Спасибо, всем буду щас пытаться реализовать.

olexandr
06.02.2008, 15:18
зачем флаги??? почему hitTest не помогает???
я сам такое делал на прошлой неделе - все отлично работает!

temych267
07.02.2008, 20:14
olexandr,
Да вот щас с hitTest сделал, но без флагов не обошлось никак.
Смысл в том что я проверку повесил на onEnterFrame и потому она генерит мне событие постоянно и мой tween альфа канала просто не успевал ниче нарисавать, т.к. было сгенерировано новое событие, т.е. получалось скрипт рисовать начаинал, но не заканчивал, т.к. генерировалось новое событие. Если кто подскажет более умное решение, буду очень признателен. Вот код.
onEnterFrame = function(){
if(_root.menu_container.hitTest(_root._xmouse, _root._ymouse)) {
if (!TweenFlagOn) {
TweenFlagOn = true;
TweenFlagOff = false;
var alphaTween = new mx.transitions.Tween(_root.menu_container, "_alpha", mx.transitions.easing.Regular.easeOut,50,100,1,true);
}
} else {
if (!TweenFlagOff) {
TweenFlagOn =false;
TweenFlagOff = true;;
var alphaTween = new mx.transitions.Tween(_root.menu_container, "_alpha", mx.transitions.easing.Regular.easeOut,100,50,1,true);
}
}
}

Fernando Costa
07.02.2008, 20:23
TweenFlagOn всегда равен !TweenFlagOff, зачем нужны 2 переменные???

temych267
08.02.2008, 17:45
Fernando Costa, спасибо вчера с пивной головы не пришла такая мысля, что можно одним флагом обойтись. Убрал щас.
Просто olexandr говорил я так понял можно вообще без флагов обойтись, а я че то никак не допираю как.