Слушатель Actionscript onMouseOut не полностью работает в Internet Explorer 8 - PullRequest
0 голосов
/ 22 марта 2011

Я работаю над видеоплеером во Flash CS4. Я пытаюсь создать проигрыватель таким образом, чтобы при наведении курсора мыши на объект флэш-памяти появлялись элементы управления воспроизведением, а когда пользователь перемещал мышь из объекта флэш-памяти, элементы управления исчезали.

Мне удалось собрать некоторый код, который работает в любом браузере, кроме одного: Internet Explorer. Ну, это «работает», но только если вы медленно перемещаете мышь с левой стороны от объекта flash.

Я довольно много искал в Google, чтобы найти ответ, но я не могу найти кого-то с подобной проблемой.

Код выглядит следующим образом:

Код ActionScript:


_root.onLoad = function(){
    _root.clip.skinAutoHide=true;
    _root.clip.skinFadeTime=0;
}

_root.onRollOver = function () {
    _root.clip.skinAutoHide=false;
}

_root.onRollOut = function () {
    _root.clip.skinAutoHide=true;
    _root.clip.skinFadeTime=0;
}

Код веб-сайта (вставляется в том месте, где должна располагаться вспышка):


var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) {  // if we've detected an acceptable version
    // embed the flash movie
    AC_FL_RunContent(
        'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,24,0',
        'width', '280',
        'height', '280',
        'src', '01clip1',
        'quality', 'best',
        'pluginspage', 'http://www.adobe.com/go/getflashplayer',
        'align', 'middle',
        'play', 'true',
        'loop', 'true',
        'scale', 'noscale',
        'wmode', 'transparent',
        'devicefont', 'false',
        'id', '01clip1',
        'bgcolor', '#ffffff',
        'name', '01clip1',
        'menu', 'true',
        'allowFullScreen', 'false',
        'allowScriptAccess','sameDomain',
        'movie', '01clip1',
        'salign', ''
        ); //end AC code
} else {  // flash is too old or we can't detect the plugin
    var alternateContent = 'Alternate HTML content should be placed here.'
        + 'This content requires the Adobe Flash Player.'
        + '<a href="http://www.adobe.com/go/getflashplayer/" rel="nofollow">Get Flash</a>';
    document.write(alternateContent);  // insert non-flash content
}

Любое понимание будет оценено.

1 Ответ

0 голосов
/ 24 марта 2011

Хорошо, я исправил это. Проблема заключалась в том, что, очевидно, методы AS2 для работы с mouseover / mouseout не очень хорошо работают в этом случае. Я обновил флэш-память для использования AS3 и использовал следующий код:


/*
Code lifted and slightly modified from:
http://board.flashkit.com/board/showthread.php?t=714795
*/
clip.skinAutoHide = false;
clip.skinBackgroundAlpha = 0;
clip.skin = "";

stage.addEventListener(Event.MOUSE_LEAVE, hideSkin);
stage.addEventListener(MouseEvent.MOUSE_MOVE, showSkin);

function showSkin(evt:Event=null):void {
    clip.skinBackgroundAlpha = 0.30;
    clip.skin = "SkinOverPlaySeekMute.swf";
}

function hideSkin(evt:Event=null):void {
    clip.skinBackgroundAlpha = 0;
    clip.skin = "";
}

Я не совсем уверен, почему это нужно было сделать таким образом, но, тем не менее, вот код для всех вас, других людей, стучащих головой о ваш стол.

Приветствие.

...