不管怎样,我可以把一个电影剪辑放在鼠标上自动播放我的电影吗
Is there anyway that I can put an movie clip on mouse-over to autoplay my movie?
我想在鼠标上自动播放我的视频。有人能告诉我如何通过媒体播放器或flash播放器播放吗?
PS:我可以在flash播放器中播放WMV/ASF/MP4吗?
我发现在浏览器中使用swf文件显示电影最容易,原因有两个:易于使用javascript控制它们,它们在旧浏览器中工作。(将任何电影格式转换为swf都很容易)。
还有swf的简单自由,我当时仔细研究了一下,即使我愿意花时间研究和编程,也找不到一个能让我100%控制它的flash播放器。
幸运的是,我有一个简单的JS框架,我自己制作,用于在网页中嵌入和控制电影(应该在所有浏览器中都能工作)[注意:我当时对JS类的理解甚至比现在更少]。
//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.
如果你有任何更具体的问题,请随时提出。
我终于找到了一种使用流播放器来解决这个问题的方法。
<'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>
相关文章:
- 尝试使用Node.js动态路由从IMDB中抓取电影内容.但是在我的output.json文件中没有定义
- 鼠标事件,我的代码出了什么问题
- 我的鼠标向下功能不是从最近的点画线,而是从左上角画线
- 为什么我的javascript鼠标事件没有启动
- Javascript拉斐尔奇怪的闪烁发生在我鼠标悬停的第三次
- 为什么当我快速移动鼠标时,我的jQuery会崩溃
- 鼠标点击在我的html5柱状图中不起作用
- 我如何让我的网站检测鼠标是否被使用,然后在元素中添加一个类
- 如何让我的Javascript只显示一个以鼠标为中心的聚光灯
- 滚动弄乱了我的画布鼠标坐标 - Javascript Telerik Mobile
- 为什么addEventListener只执行我的函数,而不为其创建鼠标悬停/鼠标打开事件
- 我的 js 函数在第二次单击鼠标后被调用
- 将鼠标悬停在位于我的页面上的 iframe 上的绑定事件,其中包含包含的 src
- 如何将鼠标悬停在链接上时显示demo_test.txt的内容?我哪里出错了,我的代码应该是什么样子
- 如何将鼠标离开添加到我的文件中?以及我的代码会是什么样子
- 遮盖我的鼠标已结束的块
- 我无法为我的 jquery 函数分配鼠标悬停事件
- jQuery - 当我的鼠标悬停在任何单词上时,如何获取任何单词的值
- 我的鼠标向上代码有什么问题
- 不管怎样,我可以把一个电影剪辑放在鼠标上自动播放我的电影吗