Форум 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=91137)

DoomerSamoiloff 25.01.2007 19:55

момент по созданию видеоплеера
 
Допустим, нужен медиаплеер, у которого видео-изображение занимает всю сцену. При наведении мыши над медиаплеером должно появляться навигационное меню (play,rewind и т.д.). Уже 2 дня мучаюсь, каким образом лучше это организовать. Проблема в следующем: а) если меню находится внутри мувиклипа плеера, то событие onRollOver(onRollOut) плеера перекрывает события onPress навигационного меню (т.е. кнопки не нажимаются) б) если меню лежит поверх мувика с видео, то при наведении мыши над меню - срабатывает (onRollOut) мувика с видео и меню становится невидимым.
Буду благодарен за любые идеи. (Уже пробовал _xmouse и _ymouse - не срабатывает при быстром движении мыши).
Заранее спасибо

etc 25.01.2007 20:07

Сообщи мувику под меню, что мышка над меню.

DoomerSamoiloff 25.01.2007 20:17

на мой взгляд слишком общее решение... :(

etc 25.01.2007 20:21

На мой взгляд слишком общий вопрос…

DoomerSamoiloff 25.01.2007 20:26

__etc, вот фрагмент кода одной из таких реализаций (при слишком быстром перемещении мыши не срабатывает, и при драге не срабатывает :) ):

Код:

var names_:Array = Array("rewindBtn_mc","playBtn_mc","forwardBtn_mc","stopBtn_mc"); //массив с именами кнопок меню

for (var i:Number =0; i<names_.length;i++) {//регистрация onRollOver, onRollOut, onDragOut событий для кнопок меню
        _root.myPlayer_mc[names_[i]].onRollOver = function () {
                _root.bFlag = true;       
        }       
        _root.myPlayer_mc[names_[i]].onRollOut = _root.myPlayer_mc[names_[i]].onDragOut =function () {
                _root.outInt = setInterval(outInterval,_root.delay);                               
        }               
}

_root.myPlayer_mc.videoScr_mc.onRollOver = fOver; //регистрация событий onRollOver, onRollOut, onDragOut для мувика под менюшкой
_root.myPlayer_mc.videoScr_mc.onRollOut = _root.myPlayer_mc.videoScr_mc.onDragOut = fOut;

function overInterval (mc:MovieClip) { //интервальные функции введены с целью установления задержки
        if (_root.overInt) {        //чтобы переменная bFlag могла установиться
                if(!_root.bFlag) {hideMenu ()}        //bFlag = true если ымшь над кнопками меню
                clearInterval(_root.overInt);
        }
}
function outInterval () {
        if (_root.outInt) {
                _root.bFlag = false;
                clearInterval(_root.outInt);
        }
}
function fOver() {               
                delete(this.onRollOver);
                if (!_root.bFlag) {showMenu ();}
                this.onRollOut = this.onDragOut = fOut;                       
}
function fOut() {
                delete(this.onRollOut);
                delete(this.onDragOut);
                _root.overInt = setInterval(overInterval,_root.delay,this);                               
                this.onRollOver = fOver;
       
}

[iNils: Для оформления своего кода, надо использовать теги [code][/code]]

DoomerSamoiloff 25.01.2007 20:32

Вложений: 1
лучше так. вот исходник

before 28.01.2007 05:27

Мне кажется что такой скрипт для такой задачи слишком сложный...:o

слушай не onEnterFrame() а onMouseMove() и тогда _xmouse и _ymouse всегда будут успевать...

video - клип с видео
menu - меню
Код:

video.onMouseMove = function() {
with(this){
if(_xmouse>0 && _xmouse<_width && _ymouse>0 && _ymouse<_height){
//показываем меню
_root.menu._visible = true;
}else{
//скрываем меню
_root.menu._visible = false;
}
}
}



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

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