0

私はFlashCS4のビデオプレーヤーに取り組んでいます。ユーザーがフラッシュオブジェクト上にマウスを移動すると再生コントロールが表示され、ユーザーがフラッシュオブジェクトからマウスを移動するとコントロールが非表示になるようにプレーヤーを構築しようとしています。

InternetExplorerという1つを除くすべてのブラウザーで機能するコードをまとめることができました。まあ、それは「機能します」が、フラッシュオブジェクトの左側でマウスをゆっくりと動かした場合に限ります。

私はかなりのグーグルで答えを探してきましたが、同じような問題を抱えている人を見つけることができないようです。

コードは次のとおりです。

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.'
        + 'Get Flash';
    document.write(alternateContent);  // insert non-flash content
}

任意の洞察をいただければ幸いです。

4

1 に答える 1

1

了解しました。修正しました。問題は、マウスオーバー/マウスアウトを操作するためのAS2メソッドがこのインスタンスでは実際にはうまく機能しないことでした。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 = "";
}

なぜこのように行わなければならなかったのか完全にはわかりませんが、それでも、他のすべての人が机に頭をぶつけている場合のコードは次のとおりです。

乾杯。

于 2011-03-24T20:07:33.723 に答える