<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" id="swf">
<param name="movie" value="1.swf">
<param name="quality" value="high">
<param name="bgcolor" value="#F0F0F0">
<param name="menu" value="false">
<param name="wmode" value="opaque">
<param name="FlashVars" value="">
<param name="allowScriptAccess" value="sameDomain">
<param name="loop" value="false">
<param name="play" value=""false"">
<embed name="swf" src="1.swf"
width="100%" height="100%"
align="middle"
quality="high"
menu="false"
play="false"
loop="false"
FlashVars=""
wmode="opaque"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>

参数介绍:

calssid-设置浏览器的Activex控件,仅用于OBJECT标签。
codebase-设置flash Activex控件的位置,因而如果浏览器如果没有安装的话,可以自动下载安装。仅用于OBJECT标签。
width-以百分比或象素指定flash影片的宽度。
height-以百分比或象素指定flash影片的高度.
src-指定影片的下载地址。仅用于EMBED标签。
pluginspage-设置flash 插件的位置,因而如果浏览器如果没有安装的话,可以自动下载安装。仅用于EMBED标签。
movie-指定影片的下载地址。仅用于OBJECT标签。

id-设定变量名,用于脚本代码的引用。仅用于OBJECT。
name -设定变量名,用于脚本代码(如javascript)的引用。仅用于EMBED。
SWLIVECONNECT - (true或false)指定当flash player第一次下载时,是否启用java。如果些属性省略,默认值为false。你果你在相同页同使用javascript和flash,java必须使用FSCommand来工作。

PLAY -(true或false)指定flash影片是否在下载完成后就自动播放,如果省略此属性,则默认为true。
LOOP - (true或false)指定影片播放完最后一帧后是停止还是继续循环播放,如果省略此属性,则默认为true。
MENU - (true或false)
True 显示全部的菜单,允许用户放大,缩小等控制影片播放等操作。
False 显示只包含设置选项和关于flash的菜单。
QUALITY - (low, high, autolow, autohigh, best )
Low 速度优于美观,而且不应用反锯齿。
·Autolow 刚开始着重于速度,但当需要时随时提升美观。
·Autohigh 同时着重播放速度和美观,但需要时则牺牲美观来保证播放速度。
·Medium 应用一些反锯齿而不平滑位图。它质量高于low设置而低于high设置。
·High 美观优于播放速度,而且一直应用反锯齿。如果影片不包含动画,位图会被平滑化;而如果影片包含动画,位图将不变平滑。
·Best 提供最好的显示质量而不考虑播放速度。所有输出都应用反锯齿及所有位图都被平滑化。
·SCALE - (showall, noborder, exactfit)
·Default(Show all)影片在指定的区域内显示,但保持原始的比例。影片两侧将会出现边框。
·No Boder 收缩影片以适合指定的区域,保持影片不失真,但部分影片将可能将裁切。然而保持影片的原始比例。
·Exact Fit 使整个影片在指定的区域内显示,影片有可能变形失真,而且不保持原始的比例。
·ALIGN - (l, t, r, b)
·默认为居中,当浏览器窗口小于影片时,边缘会被裁切。
·Left,Right,Top,Bottom按照相应的设置沿浏览器的边缘对齐。如果需要,另外三边将被裁切。
·SALIGN - (l, t, r, b, tl, tr, bl, br)
·L,R,T,B
·TL,TR
·BL,BR
·wmode- (window, opaque, transparent) 设置flash影片的window mode属性,指定flash在浏览器中的透明,层叠及位置。

·window 影片在浏览器中自己的矩形窗口内播放。
·opaque 影片隐藏了所有在它后面的内容。(可以处理flash遮住html元素.)
·transparent 使flash影片透明,显示透明影片后面的网页内容。这将会降低动画的性能。而且这个属性不是在所有浏览器中都可用的。
·BGCOLOR - (#RRGGBB, 十六进制RGB值。)指定影片的背景颜色。使用这个属性覆盖flash中设定的背景颜色。
·BASE - 设定基准目录或URL,用来解决所以flash中的相对路径。类似网页中的<base>标签。
·FLASHVARS 传递变量到flash player,需要flash player6及以后的版本。
·传递root级变量到影片。字符串的格式是用“&”分隔的name=value集。

     <input type="button" value="播放SWF" id="playSWF">
<script type="text/javascript">
var btn=document.getElementById("playSWF");
btn.onclick=function(){
document.swf.Play();
}
</script>

下面是JS控制flash的一些方法:

Play() ---------------------------------------- 播放动画
StopPlay()------------------------------------停止动画
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跳转到某帧
TotalFrames()------------------------------- 获取动画总帧数
CurrentFrame()------------------------------回传当前动画所在帧数-1
Rewind()-------------------------------------使动画返回第一帧
SetZoomRect(left,top,right,buttom)-------放大指定区域
Zoom(percent)------------------------------改变动画大小
Pan(x_position,y_position,unit)------------使动画在x,y方向上平移
PercentLoaded()----------------------------返回动画被载入的百分比
LoadMovie(level_number,path)----------- 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播放
GetVariable(variable_name)-----------------获取变量
SetVariable(variable_name,value)-----------变量赋值
TCallFrame(movie_clip,frame_number)---call指定帧上的action
TCallLabel(movie_clip,label)----------------call指定标签上的action
TGetProperty(movie_clip,property)--------获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性
其中TGetProperty 和 TSetProperty 的属性是使用数字0-18来获取的,下面是各数字代表的属性:
属性 作用 数字 使用方式

X Position X坐标 0 Get,Set

Y Position Y坐标 1 Get,Set
X Scale X方向缩放比率 2 Get,Set
Y Scale Y方向缩放比率 3 Get,Set
CurrentFrame movie_clip当前所在帧数 4 Get
TotalFrames movie_clip总帧数 5 Get
Alpha movie_clip的透明度 6 Get,Set
Visibility movie_clip是否可见 7 Get,Set
Width movie_clip的宽度 8 Get
Height movie_clip的高度 9 Get
Rotation movie_clip的旋转度 10 Get,Set
Target movie_clip的路径 11 Get
Framesloaded movie_clip已载入的帧数 12 Get
Name movie_clip的实体名字 13 Get,Set
DropTarget movie_clip的拖拽 14 Get
Url 包含movie_clip的动画的url 15 Get
HighQuality 设置画面质量为高质量 16 Get,Set
FocusRect 显示按钮边框 17 Get,Set
SoundBufTime 预设声音缓冲时间 18 Get,Set
flash调用js:
可以使用fscommand来调用js,但使用getUrl方面更为的方便,比如:getURL("BLOCKED SCRIPTalert('"+ message+ "')");就可以使用js的alert的方法作为调试使用.

根据以上情况对flash使用做简单的封装.

player.js:

 (function($){
var defaults={
src:"",
id:"flashId",
width:"100%",
height:"100%"
}
function getHtml(param){
var html='<object id="'+param.id+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="'+param.width+'" height="'+param.height+'" ';
html+=' codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0">';
html+='<param name="movie" value="'+param.url+'">';
html+='<param name="quality" value="high">';
html+='<param name="bgcolor" value="#F0F0F0">';
html+='<param name="menu" value="false">';
html+='<param name="wmode" value="opaque">';
html+='<param name="FlashVars" value="">';
html+='<param name="allowScriptAccess" value="sameDomain">';
html+='<param name="loop" value="false">';
html+='<param name="play" value=""false"">';
html+='<embed name="swf" src="'+param.url+'" ';
html+=' width="'+param.width+'" height="'+param.height+'" ';
html+=' align="middle" ';
html+=' quality="high" ';
html+=' menu="false" ';
html+=' play="false" ';
html+=' loop="false" ';
html+=' FlashVars="" ';
html+=' wmode="opaque" ';
html+=' allowScriptAccess="sameDomain" ';
html+=' type="application/x-shockwave-flash" ';
html+=' pluginspage="http://www.adobe.com/go/getflashplayer">';
html+='</embed>';
html+='</object>'; html+='<div class="playBtn"></div>';
html+='<div class="playBar">';
html+='<p class="currentAddress"></p>';
html+='</div>';
return html;
}
function getTimer(obj){
var total=obj.TotalFrames();
var current=obj.CurrentFrame();
return current/total*100;
} $.fn.player=function(opts){
opts=$.extend({},defaults,opts);
this.each(function(){
var play=false;
var obj=$(this);
var timer=null;
obj.addClass("playerBox").html(getHtml(opts));
$(".playBtn",obj).click(function(){
play=!play;
console.log(document[opts.id])
if(play){
$("embed",obj).get(0).Play();
timer=setInterval(function(){
$(".currentAddress",obj).css("width",getTimer($("embed",obj).get(0))+"%");
},20); }else{
$("embed",obj).get(0).StopPlay();
clearInterval(timer);
}
});
});
} })(jQuery);

player.css

 @charset "utf-8";
.playerBox{
position:relative;
}
.playerBox .playBar,
.playerBox .playBtn{
display:none;
}
.playerBox:hover .playBar,
.playerBox:hover .playBtn{
display:block;
}
.playerBox .playBtn{
width:50px;
height:50px;
background-image:url(playbtn.png);
background-repeat:no-repeat;
position:absolute;
margin-left:-25px;
margin-top:-25px;
cursor:pointer;
top:50%;
left:50%;
}
.playerBox .playBar{
position:absolute;
bottom:10px;
box-shadow:0px -1px 3px yellow;
border:1px solid #ccc;
height:10px;
left:5px;
background-color:#dcdcdc;
right:5px;
border-radius:5px;
cursor:pointer;
}
.playerBox .currentAddress{
padding:;
margin:;
height:10px;
background-color:#6c6d6e;
width:50%;
}

index.html:

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>封装flash</title>
<link rel="stylesheet" type="text/css" href="player.css" />
<script type="text/javascript" src="jquery-1.11.1.js"></script>
<script type="text/javascript" src="player.js"></script> </head> <body>
<div class="test" style="width:500px;height:400px;"></div>
<script type="text/javascript">
$(function(){
$(".test").player({id:"gysId",url:"1.swf"});
}); </script> </body>
</html>

后补:今天发现,原来这些工作都是有这个插件做了,我还在傻逼逼的封装.

http://jquery.thewikies.com/swfobject/examples

页面中插入flash,并且给flash添加单击事件控制播放,以及获取相关参数.的更多相关文章

  1. JSP 页面中插入图片

    第一步 在 JSP 页面中插入图片 EL 表达式 ${pageContext.request.contextPath } 的值为当前的项目名称 <html> ... <body> ...

  2. 如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签。

    如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签. <script> 和 </script> 会告诉 JavaScript 在何处 ...

  3. html页面中插入html的标签,JS控制标签属性

    html页面中插入html的标签 方法1: 使用标签: <textara> </textara>标签 方法2: 使用JS: document.getElementById(&q ...

  4. js修改table中Td的值(定义td的单击事件)

    /* 页面装载时,为每个td增加单击事件,这样,就可以不用对每个页面进行更改. 添加单击事件属性.此处不可使用setAttribute方法. */ onclick=AddObjOfText; 单击事件 ...

  5. dcef3 为按钮添加单击事件

    http://ju.outofmemory.cn/entry/78083 dcef3 为按钮添加单击事件 BccSafe's Blog 2014-06-01 3706 阅读 DOM 演示dcef3操作 ...

  6. 页面中插入视频兼容ie8以上的浏览器

    有时候页面中需要插入视频,如果不考虑ie8的话:就是直接用h5标签<video></video>就可以了: 但是有的时候需求是需要考虑ie8,这样我们就可以用插件,这种vide ...

  7. sprytabbedpanels.js库之在页面中插入Tabbed Panels

    向页面加入sprytabbedpanels.js文件.<script src="SpryAssets/SpryTabbedPanels.js" type="text ...

  8. 如何在 网站页面中插入ppt/pdf 文件,使用插件,Native pdf 支持,chrome,Edge,Firefox,

    1 经过测试:在网页中插入 ppt 不好使:可能是浏览器=>同源策略 error?             pdf 可以正常使用:   <前提:一定要放在服务器端才行!> 2 经过e ...

  9. 在WPF的DataGrid中对行添加单击事件

    在做的一个c#的项目中发现Datagrid没办法直接对鼠标单击进行响应,调用MouseDown事件也需要点击某一行第二次才能响应.所以借助EventSetter来简单的实现了一个. 界面部分的代码 & ...

随机推荐

  1. JS动态广告浏览

    <script language="JavaScript"> function addEventSimple(obj,evt,fn){ if(obj.addEventL ...

  2. Android.mk文件语法规范 原文

    序言:------------- 此文档旨在描述Android.mk文件的语法,Android.mk文件为Android NDK(原生开发)描述了你C/C++源文件.为了明白下面的内容,你必须已经阅读 ...

  3. Google Play开发者账号注册与失败申诉攻略

    Google Play开发者账号注册与失败申诉攻略 这篇文章我在网上找了好久,是在Google play进行开发者账号注册方法,介绍的很详细.现在分享一下.[原文地址] 为了方便开发者们注册谷歌的官方 ...

  4. 关于 Android导出apk时碰到的[Unable to execute dex: Multiple dex files define]

    这是一个编译错误,在ADT的编译器和SDK的工具有差异或是版本不一致时常会出现的一个问题,解决的方案如下: 第一步: updated eclipse (Help->Check for updat ...

  5. [Hibernate] - mysql

    Hibernate使用mysql例子: 1) 新建一个bean: User.java package com.my.bean; import java.util.Date; public class ...

  6. 【转】Redis主从复制简介

    一.Redis的Replication:    这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了.相信在阅读完这篇Blog之后你也可以轻松做到.这里我们还是先列出一些理 ...

  7. WINDOWS黑客基础(5):利用内存来进行获取计算结果

    在前面的注入代码的章节中,我们利用了VirtualAllocEx来在对方的进程开辟了一块内存,并且将代码复制进对方进程的内存里面,从而执行那段内存的代码,但是这里有一个问题,就是代码不是执行在我们进程 ...

  8. Ubuntu下面配置问题

    下开启root登陆 sudo passwd root 输入两次新密码 就能在虚拟终端下用 root登陆了,或者 su到root用户了. ctrl + alt +t 弹出终端 ctrl+ alt+ f7 ...

  9. c++封装编写线程池

    在csapp学习或者其他linux底层编程的过程中,一般都会举一些多线程或多进程的例子,配合底层同步原语.系统调用api来解释怎么创建多线程/多进程. 但是这些例子和实际项目中所用到的多线程/多进程编 ...

  10. memcached简介(转)

     背景 memcached是一个高性能.分布式的内存对象缓存系统.    memcached广泛应用在大负载高并发的网站上,是一种非常成熟的产品(称为一项技术也未尝不可).像facebook,yout ...