无论如何我是否可以将鼠标悬停在电影剪辑上以自动播放我的电影?

时间:2011-05-30 14:16:10

标签: javascript media-player flash-autoplay

我想在鼠标上自动播放我的视频。 谁能告诉我如何通过媒体播放器或flash播放器播放它?

PS:我可以在Flash播放器中播放WMV / ASF / MP4吗?

2 个答案:

答案 0 :(得分:1)

我发现使用swf文件在浏览器中显示电影最简单有两个原因:易于使用javascript来控制它们,它们可以在旧浏览器中使用。 (很容易将任何电影格式转换为swf)。

此外还有瑞士法郎的简单自由,我当时非常密切地调查,并且找不到一个允许我100%控制它的闪存播放器,即使我愿意花时间研究和编程。

幸运的是,我有一个简单的JS框架,我自己在网页中嵌入和控制电影(应该适用于所有浏览器)[注意:我当时理解JS课程的时间甚至比我现在做的更少]。< / p>

//http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

function FlashController(name)
{
    this.flashMovie = this.getFlashMovieObject(name);

    this.getXPos =        function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 0));
                };

    this.getYPos =        function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 1));
                };

    this.getXScale =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 2));
                };

    this.getYScale =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 3));
                };

    this.getNextFrame =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 4));
                };

    this.getCurrentFrame =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 4) - 1);
                };

    this.getTotalFrames =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 5));
                };

    this.getAlpha =        function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 6));
                };

    this.getVisibility =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 7));
                };

    this.getWidth =        function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 8));
                };

    this.getHeight =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 9));
                };

    this.getRotation =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 10));
                };

    this.getTarget =    function()
                {
                    return (this.flashMovie.TGetProperty("/", 11));
                }
    this.getFramesLoaded =    function()
                {
                    return (this.flashMovie.TGetPropertyAsNumber("/", 12));
                };

    this.getName =        function()
                {
                    return (this.flashMovie.TGetProperty("/", 13));
                };

    this.getDropTarget =    function()
                {
                    return (this.flashMovie.TGetProperty("/", 14));
                };

    this.getURL =        function()
                {
                    return (this.flashMovie.TGetProperty("/", 15));
                };

    this.getHighQuality =    function()
                {
                    return (this.flashMovie.TGetProperty("/", 16));
                };

    this.getFocusRect =    function()
                {
                    return (this.flashMovie.TGetProperty("/", 17));
                };

    this.getSoundBufTime =    function()
                {
                    return (this.flashMovie.TGetProperty("/", 18));
                };

    this.setXPos =        function(value)
                {
                    this.flashMovie.TSetProperty("/", 0, value);
                };

    this.setYPos =        function(value)
                {
                    this.flashMovie.TSetProperty("/", 1, value);
                };

    this.setXScale =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 2, value);
                };

    this.setYScale =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 3, value);
                };

    this.setAlpha =        function(value)
                {
                    this.flashMovie.TSetProperty("/", 6, value);
                };

    this.setVisibility =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 7, value);
                };

    this.setRotation =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 10, value);
                };

    this.setName =        function(value)
                {
                    this.flashMovie.TSetProperty("/", 13, value);
                };

    this.setHighQuality =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 16, value);
                };

    this.setFocusRect =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 17, value);
                };

    this.setSoundBufTime =    function(value)
                {
                    this.flashMovie.TSetProperty("/", 18, value);
                };

    this.getVariable =    function(path)
                {
                    return (this.flashMovie.GetVariable(path));
                };

    this.gotoFrame =    function(num)
                {
                    var loaded = getFramesLoaded();
                    if(num > loaded)
                    {
                        return (this.flashMovie.GoToFrame(loaded));
                    }
                    return (this.flashMovie.GoToFrame(num));
                };

    this.isPlaying =    function()
                {
                    return (this.flashMovie.IsPlaying());
                };

    this.loadMovie =    function(layerNum, url)
                {
                    return (this.flashMovie.loadMovie(layerNum, url));
                };

    this.panPixels =    function(hPx, vPx)
                {
                    this.flashMovie.Pan(hPx, vPx, 0);
                };

    this.panPercent =    function(hP, vP)
                {
                    this.flashMovie.Pan(hP, vP, 1);
                };

    this.getPercentLoaded =    function()
                {
                    var value = Math.round(movieControls.getFramesLoaded()/movieControls.getTotalFrames() * 100);
                    if(isNaN(value))
                    {
                        value = 0;
                    }
                    return (value);
                };

    this.play =        function()
                {
                    this.flashMovie.Play();
                };

    this.rewind =        function()
                {
                    this.flashMovie.Rewind();
                };

    this.setVariable =    function(path, value)
                {
                    this.flashMovie.setVariable(path, value);
                };

    this.zoomRect =        function(left, top, right, bottom)
                {
                    this.flashMovie.SetZoomRect(left, top, right, bottom);
                };

    this.stop =        function()
                {
                    this.flashMovie.StopPlay();
                };

    this.zoom =        function(percent)
                {
                    this.flashMovie.Zoom(percent);
                };

    this.zoomReset =    function()
                {
                    this.flashMovie.Zoom(0);
                };

    this.callFrame =    function(frame)
                {
                    this.flashMovie.TCallFrame("/", frame);        
                };

    this.callLabel =    function(label)
                {
                    this.flashMovie.TCallLabel("/", label);        
                };

    this.currentLabel =    function()
                {
                    return (this.flashMovie.TCallLabel("/"));        
                };

    this.goToFrame =    function(num)
                {
                    this.flashMovie.TGotoFrame("/", num);
                };

    this.goToLabel =    function(label)
                {
                    this.flashMovie.TGotoLabel("/", label);
                };
/*
//Description: Generated as the Flash movie is downloading. The argument type is integer.
    this.OnProgress =    function(percent)
                {
                };

//Description: Generated when the ready state of the control changes.
//The possible states are:
//0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete.
    this.OnReadyStateChange =    function(state)
                    {
                    };    

//Description: Generated when an FSCommand action is performed in the movie with a URL
//and the URL starts with FSCommand :
//Use this to create a response to a frame or button action in the Flash movie.
//The argument type is string.
    this.FSCommand =    function(command, args)
                {
                };*/        

    this.nextFrame =    function()
                {
                    var nextFrame = getNextFrame();
                    if(nextFrame >= getTotalFrames())
                    {
                        nextFrame = 0;
                    }

                    goToFrame(nextFrame);
                };
}

FlashController.prototype.getFlashMovieObject = function(movieName)
{
    if (window.document[movieName])
    {
        return (window.document[movieName]);
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[movieName])
        {
            return (document.embeds[movieName]);
        }
    }
    else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
    {
        return (document.getElementById(movieName));
    }
}

FlashController.embedVideo = function(location, name, filePath, bgColor, width, height)
{
    location.innerHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '
                + 'codebase="" id="' + name + '" width=' + width + ' height=' + height + '>'
                + '<param name="movie" value="' + filePath + '">'
                + '<embed play=false swliveconnect=true name="' + name + '" '
                + 'src="' + filePath + '" quality="high" '
                + 'bgcolor=' + bgColor + ' width=' + width + ' height=' + height + ' type="application/x-shockwave-flash">'
                + '</embed></object>';

}

使用(我想,已经有一段时间了):

FlashController.embedVideo(nodeToPutItIn, "movie.swf", fullPathToSWF, backGroundColor, width, height); //Or simply hard code into the webpage.
var myMovie = new FlashController("movie.swf");
nodeToPutItIn.onMouseOver = "myMovie.play();";  //never actually done this command before so syntax might be off.
//Note: you have to wait for the movie to load if it is over a slow connection or it is big.

如果您有任何更具体的问题,请随时提出。

答案 1 :(得分:1)

我终于找到了一种方法来解决这个问题,使用流媒体播放器。

    <'a' href="/PlayList/myvideo.flv" style="display: block; width: 520px; height: 330px"
        id="player">
    /<'a'>
    <!-- this will install flowplayer inside previous A- tag. -->
    <script type="text/javascript">

        flowplayer("player", "flowplayer-3.2.7.swf", {
            clip: {
                autoPlay: false,
                autoBuffering: true
            },
            onLoad: function () {   // called when player has finished loading
                this.setVolume(30); // set volume property              
            },
            onMouseOver: function () {

                this.play();

            },
            onMouseOut: function () {
                this.stop();
            }
        });

    </script>