Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Панель управления для слайд-шоу (http://www.flasher.ru/forum/showthread.php?t=107466)

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);
                }
        }
}



Часовой пояс GMT +4, время: 16:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.