tms-0.4.1.js 这个js插件是node.js用来做什么么的。。。

请选择邮箱类型
插件描述:Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。
Video.js最新v5.4.3版 更新Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。使用方法在页面中引用video-js.cs样式文件和video.js&link&href=&video-js.css&&rel=&stylesheet&&type=&text/css&&
&script&src=&video.js&&&/script&设置flash路径,Video.js会在不支持html5的浏览中使用flash播放视频文件&script&
&&&&videojs.options.flash.swf&=&&video-js.swf&;
&/script&htmlposter=&**&播放初始图。可使用三种视频格式,根据所需要格式选择对应的。&video&id=&example_video_1&&class=&video-js&vjs-default-skin&&controls&preload=&none&&width=&640&&height=&264&
&&&&&&poster=&http://video-/oceans-clip.png&
&&&&&&data-setup=&{}&&
&&&&&source&src=&http://视频地址格式1.mp4&&type='video/mp4'&/&
&&&&&source&src=&http://视频地址格式2.webm&&type='video/webm'&/&
&&&&&source&src=&http://视频地址格式3.ogv&&type='video/ogg'&/&
&&&&&track&kind=&captions&&src=&demo.captions.vtt&&srclang=&en&&label=&English&&&/track&&!--&Tracks&need&an&ending&tag&thanks&to&IE9&--&
&&&&&track&kind=&subtitles&&src=&demo.captions.vtt&&srclang=&en&&label=&English&&&/track&&!--&Tracks&need&an&ending&tag&thanks&to&IE9&--&
&/video&设置自动播放将下面代码加到html中代码后面&script&type=&text/javascript&&
&&&&var&myPlayer&=&videojs('example_video_1');
&&&&videojs(&example_video_1&).ready(function(){
&&&&&&&&var&myPlayer&=&
&&&&&&&&myPlayer.play();
相关插件-音频和视频
音频和视频
音频和视频
音频和视频
音频和视频
讨论这个项目(229)回答他人问题或分享插件使用方法奖励jQ币
这个插件给力视频播放不愁了。
这个插件 可以在IE上播放啊?
当然可以了。
@西瓜 &西瓜,能否加个好友,指点下,急求
彭强-成都信言教育咨询有0
感觉这个东西还不错呢
站长求联系方式!想请教你一些东西!今天好像你前台的字符出现问题了!出现乱码了!
alert(&nihao&)
看上去还不错 &但是怎么没有API了?
全屏功能好像没用
全屏功能好的,点击右上角的X 移除框架,在点全屏就好了。
yangyangyang_940
那怎么在框架中全屏显示呢??
人心太拥挤0
能否给个联系方式呀我的IE不能用
这个播放器不赖。
有网友提出错误信息,ie8不能播放,刚检测过,ie8下是正常的ie6下也是正常的。
i am what i am0
ie7 和ie8播不了啊,demo下载下来就不能播了,求解。。。
ie7 和ie8下调用flash播放,不是flash插件安装问题,就是没有设置好插件中的flash.
有API呀,点击website去官网就能查看到api
大家好,这个是播放器默认是暂停播放的,默认是自动开始播放,怎么修改啊?
设置自动播放方法,将下面js代码加到&/video&后面&script&type=&text/javascript&&
&&&&var&myPlayer&=&videojs('example_video_1');
&&&&videojs(&example_video_1&).ready(function(){
&&&&&&&&var&myPlayer&=&
&&&&&&&&myPlayer.play();
为什么这个插件我导入后,播放按钮 全屏按钮显示不出来啊!
爱恋积沙如漠♂0
我也是求解
这么都播放不了,一直在加载!
这个插件没有问题,可以说是非常棒的视频插件,楼上检查一下,视频地址。
下载完了ie7 8 怎么不兼容呢
ie7 8 兼容的,低版本会自动用flash播放除非你电脑上没按flash
ie8及以下不支持 要知道flash播放不能要求客户端是否安装 这是不合理的
你在低版本浏览器中如果不用flash播放视频,我想也没有别的技术可以支持了吧!不要说用Windows Media Player那效果没多少用户可以接受。
喜欢喝可乐0
各位好,如果想多个视频自动连续播放怎么做?网上查了一下,但还是不会,能支持一下吗?谢谢
var vList = ['视频地址url1', 'url2', '...']; // 初始化播放列表
var vLen = vList. // 播放列表的长度
var curr = 0; // 当前播放的视频
var video = new Video();
video.addEventListener('end', play);
function play(e) {
video.src = vList[curr];
video.load(); // 如果短的话,可以加载完成之后再播放,监听 canplaythrough 事件即可
video.play();
if (curr >= vLen) curr = 0; // 播放完了,重新播放
笔墨伺候-HXH0
@喜欢喝可乐 只需要监听每个视频的播放结束 ended 事件,然后初始化videojs,继续播放下一个视频,看看视频讲的关于videojs的用法把
Eugenio_x0
测试发现IE7 和8 不能用 不能播放
ie7,8下插件会自动用flash播放,说明你浏览器flash没有安装好。
ゞ╃逍鎐者ó0
火狐怎么不行,没显示是什么问题
火狐调用的那个视频演示路径有问题,换成你自己的就行了。
开始那个按钮在左上角,怎么调到中间??
@苗小楼 你去看官方文档
有个参数可以控制播放按钮的位置
多谢楼主回答,已经找到了在哪调。但新出了个问题,官方的demo视频完全正常,我自己找了个MP4的视频,在IE里边一直显示加载,但在谷歌、火狐浏览器里正常。请问楼主遇到过这样的问题吗?遇到过是怎么解决的?PS:在IE9和IE11里都不行。
mp4格式问题
这个我的IE10是没有问题的,我不知道你的IE版本是多少,楼上说的“ie7,8下插件会自动用flash播放,说明你浏览器flash没有安装好。”我建议你先在IE里面打开官方网站的视频,看能不能播放,以确定是你没用对还是本身就不支持IE播放。
为啥js动态生成的video播放不了,显示no video with supported format and MIME type found,求解,非常感谢!
bruce-deng0
不错的插件
bruce-deng0
ie8视频加载的比较慢
楼主,请问 demo 的mp4视频,用什么工具生成的?试了好多个工具生成的h264,ie 下都放不了。
@AWAN 貌似MP4也有很多格式,有的格式是不能在网上播放的
@hacker 是的楼主,用MP4 FastStart
转换的h264编码的mp4可播放,但是ie10以下要渲染在ie7模式下才可以播放()。新的问题出现:这个模式下 播放器的进度条,按扭不显示。需要调整css?
笔墨伺候-HXH0
@AWAN 你这样,先在你的浏览器环境下打开官方网站的Demo,如果官网的demo也有你说的问题的哈,那就是不支持了。你得选好IE的版本,保持版本和文档模式一致,看看是IE的那个版本有问题。
@笔墨伺候-HXH,官方demo,ie下都正常。
楼主,急,请问下,那个开始播放按钮,怎么居中啊
找了半天,也没找到,你直接把代码给我吧,谢谢啊,好人一生平安
楼主,楼主,楼主,楼主,楼主,楼主。
@苗小楼 你那个开始播放按钮怎么让其居中的啊
急 请给我代码
Hare能一生平安
好人一生平安
@sxalp123 官方有文档,调整一下css就行了
@sxalp123 给video标签加上一个 vjs-big-play-centered 样式就OK了
@hacker 楼主非常感谢,现在已经弄好了,可以居中了,谢谢啊, 好人一生平安 祝楼主永远幸福啊
楼主,有事请教下你,就是我用360,做的网站导航进子页,在360上,可以跳转,到IE上为什么不行啊,连网站地址都不改变
@sxalp123 标签不能跳转吗?是不是点击时执行js return false了?
我用360做的网站跳转页面很好,到IE上就跳转不了页面
上面的网址永远都没发生改变过,永远都是我设置的起始页网址,我想进导航栏子页,进不去
我用asp.net服务器空间做的
protected void Button1_Click(object sender, EventArgs e)
string content = this.txtContent.T
Server.Transfer("~/BlockPage/SearchList.aspx?Content="+content);
这也不能跳转
不管怎么弄就是不能跳转,我上次做的静态页面,用IE做兼容性的时候,可以跳转页面,现在我做的是B/S项目,用IE就是不能跳转页面
一个a标签,点击鼠标左键,跳转不了页面,点击鼠标右键在新窗口中打开,可以打开,
就是不能直接跳转,只能用新窗口打开才行
那说明是你的IE浏览器有问题了,试试chrome
谷歌可以,我们组长用IE也不行啊
谷歌,360,火狐都行,就IE不行
说白了,就是在IE中不能鼠标左键直接跳转页面,必须要右键在新窗口(新标签)中打开才行
我们组长用IE试了的,也不行
我的版本是IE8.0
我们组长的版本是IE9.0,都不行
楼主,楼主,那个页面跳转问题我已经解决了,是我的JS有问题,不好意思啊!
现在我又碰到新问题了,就是那个视屏播放,我在IE8里面播放,它报错了“FLASH: srcnotfound”解析为:flash路径没找到,这是什么原因啊?
请求楼主施以援手啊,急,急,急,急,急,急。
好人一生平安!!!
还有这个项目要兼容IE8。
楼主,楼主,楼主,楼主,,楼主,楼主。
很明显是flash路径不对,就是那个
videojs.options.flash.swf = "video-js.swf";
shemale_638470
videojs可不可以实现 快速播放 就是x2的播放速度进行播放
可以实现,快速播放
&script type="text/javascript"&
videojs.options.flash.swf = "../JavaScript/video-js.swf";
我把它放在JavaScript文件夹下面了
这路径不对吗?
我引用的页面也在一个文件夹下,这个文件夹和JavaScript平级
在同一目录下
我在谷歌,用的好好的,一到IE8就不行了,报那个错,难道这还是跟兼容性有关啊?
我试过4种浏览器:IE8-"FLASH: srcnotfound"
火狐-“The video could
not be loaded,either because the server or network failed or because
the format is not supported”
这是所有浏览器播放情况
你是直接本地打开网页的吧,需要在本地搭建一个服务器再运行。
本地IIS不行吗?
我用vs2010做的项目,再打开的
建议你在IE8中打开官方demo看看有没有问题,如果官方的没问题的话,那就把那个flash地址指向官方的地址试试。
楼主,我刚刚试了的,用IE8打开了,但是那个官方的demo视频没有显示出来,不能进行播放,我用谷歌可以播放
IE9可以打开,并且能够播放官方demo
@插件王子 我用IE8不能播放,还报错了,FLASH: srcnotfound
这是怎么回事,谷歌可以正常播放
笔墨伺候-HXH0
我亲自测试一了一下,可以兼容到IE6, 官网的demo在IE中报错了,是因为bootstrap报错了,而不是videojs。你在你的IE中打开我们网站的demo地址 /video-js/ 。我这里是可以正常显示的。
@笔墨伺候-HXH
你给我的demo我可以播放,但是我做的项目为什么就播放不了了,总是报这个错“FLASH: srcnotfound”
好人一生平安
这个错误的意思是“flash的路径没找到”吗?
&script type="text/javascript"&
videojs.options.flash.swf = "../JavaScript/video-js.swf";
我把它放在JavaScript文件夹下了
急,急,急,急,急,急。求大神们,帮助一下,好人一生平安!!!
我用IE8打开的时候,为什么这个demo播放的时候,很卡啊,播放一会,暂停一会?求解?帮助一下撒,各位大神,好人一生平安!!!
各位大神,我弄好了,那个问题我解决了,原来是我的视频格式有问题,其他的都是对的,我的视频是把.mkv后缀名的视频改成.mp4的
嘿嘿,不好意思啊,占用了大家的时间,还是说一句好人一生平安!!!
记得*^_^*忘记0
为什么IE8 本地能显示 到服务器上就不行了 求解!! 谢谢
楼上说明你上传到服务后,视频播放文件,或路径有问题。
楼主好,MP4转换的编码是什么格式的,或者你用什么工具转换的?
@我老王啊 给你推荐一个转换器叫 “格式工厂”
/v_show/id_XODc2MzI4ODQ0.html?f=&ev=1&from=y1.3-idx-grid-808-我的视频地址是这样的,怎么设置src啊,直接设置这个不能播放
@珍爱惜缘 每个视频的下方有一个分享功能,把里面的flash地址复制过来试试
@hacker 不行啊,他那上面是swf格式,flash啊,有办法弄吗
@珍爱惜缘 一般来说,对于在线视频网站的视频是直接加入的,而不需要这些视频播放插件的。
不错,我喜欢。
梦想天空分外蓝0
竟然不支持3gp
ˊ謎/ 亂背後0
ie10下面是一直在加载视频状态 播放不了是为什么
ˊ謎/ 亂背後0
@hacker ie10下面播放不了 一直加载 这是什么原因呢 官方demo就是这个样子
试过了mp4格式的只有H264编码的才能播放
ǒ╫〃йし?ㄚǐ0
为什么在IE8下面看演示实例是没有问题的,下载下来之后点击按钮视频就不出来是为什么?其他浏览器都是好的!急需。。。。。求大神指教啊!!!!!
ǒ╫〃йし?ㄚǐ0
是直接下载上面的demo就可以了吗??为什么我的IE8下视频是不出来的,点击按钮没反应
@hacker,我的视频可以播放,但是无法拖动进度,这是怎么回事啊?
ǒ╫〃йし?ㄚǐ0
@刘小川yy,你是什么浏览器可以播放?
我ie,谷歌,360极速都能播放,但是只有ie能拖动进度,谷歌和360不能拖动,只能等它慢慢播放,由于无法拖动,也不能从头开始播放,一旦播放也就没法从头开始了,不知道怎么回事,唉
ǒ╫〃йし?ㄚǐ0
@刘小川yy我是360,谷歌,火狐,IE9都可以,还能拖动,就是IE8不行,能出来画面跟按钮,就是点击按钮没有反应,并没有自动调用flash播放,而我用IE8点击上面的演示实例却是能放的,不知道为什么愁死我了。。。
对啊,我谷歌点击演示示例也没有问题,不知道怎么办啊,我什么都没改啊
ǒ╫〃йし?ㄚǐ0
亲,加个QQ咱俩探讨一下呗
你们都是查看的官方网站的demo还是自己做的啊
仿demo,其他js、css我都没动,我就是用的demo,只是把src的值也就是播放的视频的地址改了
能不能控制暂停和续播?
能啊,但是不能拖动进度,播放完了也没法重新播放
自动播放代码 360浏览器和搜狗下面不能播放,兼容模式可以
safari不能播放,ie9 10能播放,但是没有播放和音量等所有按钮了,ie78完全不能播放
为什么IE8中点击开始按钮后不播放啊·~~~~
毅痛并快乐着0
ie8 不能切换视频啊 我用append加载
为什么 我看/video-js/ 实例 IE都行,下载官方实例的 IE9一下都不行
我播放MP4文件只有声音没有图像,难道是解码问题?
@卖食相呐 那是MP4的格式不对,MP4也分很多不同格式的,有一些格式就会出现只有声音没有图像的现象。
我用ie8浏览器看示例视频和自己做的都有问题,开始那个按钮是个大方块在视频左上角,开始后底下的播放和全屏按钮看不到,不能全屏。但是用其他几种浏览器都没有这个问题。
难道只能升级ie浏览器才可以么,单位里去年刚换了一批电脑都用的ie8啊
我刚才把浏览器升级到了ie 10,但是问题还是存在。无论是demo还是自己做的视频。鼠标滑过视频底部时显示不出来控制条,鼠标点击视频,视频会停止,底部动作条显示出来,但是没有开始按钮和全屏按钮,鼠标再次点击视频,视频继续播放。
这个不是ie版本的问题,想问下怎么解决呢
我用的是win7 32位操作系统
犯二青年的Le趣0
IE8下无法播放是为什么?
喵喵喵喵小黑0
有办法设置screen随class吗????视频也看完了,完全没有提?api也查来,没有实例看不出来
js动态生成会被浏览器自动替换为当前浏览器的播放 这个怎么破 在ie8下点击d动态生成的会报错 能加Q帮我讲解下吗 谢谢
已经装了flash player。可是在ie8不能播放视频~~求解
'videojs' 未定义
速制攻城狮0
..ie8 不兼容啊? 如何解决呢?
newandroid0
@hacker 不可以在app是播放
手机端不支持自动播放!怎么破?
手机都不能自动播放怎么破?
用本地视频测试
有声音没画面 是怎么回事
用本地视频测试 有声音没画面 是怎么回事?
xhtml好像不能用。
怎么使用啊
我第一部就不会操作
dadaasdsa0
下载了 又不会按
jjww0909还有不会的同学请认真查看说明,和下载后演示文件,里面已经写的非常清楚了,这个视频插件,还是非常好用的。
bleach5290
下载了 又不会按
为什么我其他浏览器都支持,就是不支持ie浏览器呢,求大神指教
楼上ie支持的,在低版本ie下,会掉用flash播放,说明你flash没有按装好,或插件swf这里没有设置正确。
正在找这个,看下是不是好东西。
guardiangel0
怎么按键图片都看不见???
我用video.js做的播放器。视频两侧老是有黑色的块。视频界面都不能铺面video元素。类似于窄屏的效果。这是什么原因啊!
上传到服务器不行啊,本地可以
很好用啊这个,评论有积分吗
能播放yy在线直播视频吗?
wanquanwanquan完全看不懂
这个IE8以下能用吗
老张家的内个小小明0
来咨询下楼主,这款插件是不是在对移动端 安卓设备的适配上有一点bug啊?
ァ钭痣?酝の0
这个播放器挺不错的
对于一个小白来说,真看不懂怎么使用? &麻烦楼主有空能否做一个使用视频呢,谢谢!
其实都没有MLGB0
如何在视频控制条上 添加视频清晰度的按钮啊?楼主大人 &还有各位大神谁知道啊
IE本地打开是无法浏览,一直加载状态,发布在IIS中即可,试过了。谢谢分享!太好了!
这个播放控件位置怎么调整,比如我要放在视频顶端,里面有些控件不需要,怎么隐藏或者删除呢,代码都在JS里面吗?原生的不好改,求解决方法,怎么改?
&videojs.options.flash.swf = &js/video-js.swf&;这一句需要把swf文件导入进来吗?不太明白
导入进去,也是出现播放图标,声音图标这些控件都显示不出来,什么问题?
免费招代理0
可以不播放先加载吗??不想要那个大大的播放按钮
轩辕Ruins0
不知为何,进条框下,我的样式除了时间和声音有出来,其他的都没有出来。
这个真的很不错
请问用这个插件,在XP系统下火狐能支持MP4吗?
秦时l明月0
羡慕 !!!!!!!
读书学习不做泡沫0
羡慕啊,我什么时候能做出这样的效果
我点查看演示的时候ie78都行,可下载了之后ie78就不行了
不错 & &值得我们学习
阳光灾男29410
不能全屏播放
怎么切换视频啊?
不错嘛,这是我想要的
能不能播放FLV视频格式,MP4格式有些大啊
じ☆ve程ヅ0
亲们 &怎么把视频加到网站啊 & 下载了不会弄
这个相当有用啊。哈哈
只为你开设0
这个相当好用啊,嘎嘎嘎嘎
这个为什么发布到IIS中就提示加载文件失败呢?
在HTML中完全没问题,在IIS中就播放不了了,有大神知道解决方法吗?
为什么我其他浏览器都支持,就是不支持ie浏览器呢,求大神指教
IE完全不好使,是什么情况,别的浏览器都OK,
shinejacky0
各位大神,能不能在js中动态改变&&source src=&http://video-/oceans-clip.mp4& id=&video_src& type='video/mp4' /& 中src 的值啊,就是呀改变播放的视频地址。
当然可以$(&#video_src).attr(&src&,&你的地址&);
shinejacky0
我也是用了这种方法,地址是设置进去了,但是播放不了,那个画面一直在转圈圈
shinejacky0
function showVideo(){
document.getElementById('video_hidden').style.display=&&;//显示
$('#video_src').attr(&src&, &http://video-/oceans-clip.mp4&); }我是这样写的
shinejacky0
&video id=&video_1& class=&video-js vjs-default-skin& controls preload=&none& width=&660& height=&264& &poster=&& data-setup=&{}&&& &&source src=&& id=&video_src& type='video/mp4' /&& &&track kind=&captions& src=&${web_static}/video/demo.captions.vtt& srclang=&en& label=&English&&&/track&&!-- Tracks need an ending tag thanks to IE9 --&& &&track kind=&subtitles& src=&${web_static}/video/demo.captions.vtt& srclang=&en& label=&English&&&/track&&!-- Tracks need an ending tag thanks to IE9 --&& &/video&
よ熟?で??0
很好,很强大
你好,刚下载下来,IE9只显示图片,无法播放。
请问一下,如何在多个视频之间做动态切换啊?
请问各位大神,如何检测视频有没有播放完?
视频地址格式老是不正确
楼主,为什么& 全屏播放的时候& 会把flash动画& 也显示出来& 在ie9 上面&&
microsoftvs1
ie9对html5支持很差的,在ie9下应该是调用的flash来播放。
只支持上面的三种格式吗&
microsoftvs0
╁似水、流年┽0
不能放flv的文件吗
楼主,在safari浏览器中为什么不能自动播放呢,必须触发播放按钮才能播放,明明设置了自动播放的,其他浏览器都OK的
我在这儿等着你再来0
为什么不能加载字幕?代码加了,播放器有cc按钮,选了字幕什么都不出现,用的demo.captions.vtt & 和自己编的字幕都不行,请大神指教!
回复不显示
楼主 第一次进入播放页面 时有 &video.min.js:17 Uncaught TypeError: m is not a function 这样的错误提示,后退一下 再返回播放页面 又能正常播放了 是为什么啊?
所以要在上传视频的时候就上传一个.swf文件吗?求大神
下载的源码 用ie6/7/8/9浏览器都播放不了 火狐谷歌都行
ie6,7,8,不行说明flash没有按好,火狐不行说明你代码写的不对。
饿一天不会死0
zhefu60770
网上的demo,在IE8中能够正常播放。但是下载到本地,IE8就不好使了!
很不错,赞赞
很好 都可以播放 不过ie6不显示播放全屏等
请问为何移动端上是用的flash播放器呢?样式不是h5的样式
能不能给个联系方式,有问题请教
喵喵_葡萄0
ipad &safari &如何 背景图片 &铺满?
IE7下面, &播放、声音、全屏三个图标就没了
视频资源不错,
水灵儿03080
好东西,谢谢分享!
IE7下面, &播放、声音、全屏三个图标就没了,有朋友解决了吗?
怒送一波 GG0
为什么我在本地试了可以播放 &部署到服务器就不能播放了 &用的都是chrome & 用IE直接运行demo都不能播放
人心太拥挤0
为什么我的IE打不开求解,急
直接在safari for windows下运行demo不能播放,但是这里网页的示例是可以播放的。求解
加载网页就全屏怎么搞???
我要把这放到易语言超级列表框里,
我要把这放到易语言超级列表框里,
为啥播放不了
The Wind Rises0
chremo下面播放好多报错啊
The Wind Rises0
楼主,为啥我用了之后ie浏览器显示的是无效源啊,
已下载,准备琢磨一下。
怎么让视频一开始就能全屏呀而不是点了全屏按钮才全屏的,楼主大人
网上刚下载下来,点击demo.html,但是总是显示加载,播放不了
用的浏览器是google chrome我想应该不是浏览器的问题,各位大神求解
视频连接地址问题,换成你自己的就行了。
请问按钮的图片在哪设置,还有设置视频初始图片怎么设置请大神赐教
video.js都支持什么格式的视频啊
.mp4、 &.webm、 .ogv认真看说明
除了这三种格式没有其他的嘛?
PROMULGATOR
关注作者 (140)
收藏此插件 (206)
我当前jQ币余额:正在获取..
已下载次数:17678
所需jQ币:0[BlockLauncher Pro]〔小卫〕mc0.11.1药水插件和天狼爪7.4js介绍。-我的世界视频-越塔强杀教你做人视频-一起玩耍手游视频
本网站暂时不支持本浏览器,请升级您的浏览器,或下载最新版本的Chrome、火狐浏览器。
[[video_cur_time_str]]/[[video_total_time_str]]
唉,我一发到群,每次都是你跑得比小僵尸还快。
沙发是我的。
手游视频录制直播社区
北京一起玩耍科技有限公司
(C) 2015 wan123.tv 京ICP备号-3网侠手机站:值得大家信赖的手机软件游戏站!
关注网侠手机站礼包、游戏、app应有尽有
网络游戏单机游戏手游合集
您的位置:
→ 我的世界手机版0.12.1红石js插件整合包
扫一扫下载到手机
2KB/ 手游存档 /5.0
89KB/ 手游存档 /10.0
117KB/ 手游存档 /10.0
74KB/ 手游存档 /10.0
下载总览游戏礼包游戏截图视频演示猜你喜欢下载地址相关文章网友点评
手机版0.12.1红石js整合包是《》的存档文件,小编给大家提供了红石js插件整合包,希望各位我的世界手机版玩家会喜欢这个我的世界手机版0.12.1红石js插件整合包。
图文教程 我的世界手机版存档ios使用教程:
我的世界手机版存档安卓使用教程:
我的世界手机版js使用教程:
我的世界手机版材质包使用教程:
我的世界手机版皮肤使用教程:更多我的世界手机版内容,请进入专题:
猜你喜欢像素我的世界沙盒迷你游戏
像素手机游戏包含了各种各样的像素游戏,游戏的玩法有多种多样的,有横版闯关的,还有休闲益智,其中最火热的游戏就是我的世界的了,玩法简单容易上手,还有很多很多的像素...
我的世界手机版0.12.1红石js插件整合包
我的世界0.12.1游戏资讯
我的世界0.12.1攻略心得
我的世界0.12.1游戏问答
下载帮助网侠手机站软件均来自互联网, 如有侵犯您的版权, 请点击网站底部在线QQ进行联系。
1.网侠手机站所有软件和游戏都经过严格安装检测,保证不会有任何病毒木马等信息,请大家放心使用;
2.大家在安装软件的时候注意每个步骤,注意包含安装插件信息,推荐使用下载本站软件以获取最佳的下载速度。
3.如果您觉得网侠还不错, 以便下一次的访问.
4.网侠QQ群:应用软件交流群: 手机游戏交流:iOS插件化研究之一――JavaScriptCore - iPhone手机开发技术文章 - 红黑联盟
iOS插件化研究之一――JavaScriptCore
原文:/?p=191
一样的开篇问题,为什么要研究这个?iOS为什么要插件化?为什么要借助其他语言比如html5 js甚至脚本lua等来实现原本OC/Swift应该实现的东西?
原因可以归结为两点:
1. iOS平台 appstore 审核速度不可控,而很多活动页面需要频繁更新,如果每次更新都走appstore审核流程,那活动也就不要做了。
2. 可多平台复用代码,节省开发成本。比如同一个活动的页面,用html5+js完成,就可以通用的在iOS Android平台上,而只需要维护一份html5+js代码。
现如今国内各大互联网公司的iOS端产品,绝大多是都有使用这种技术,特别是html5+js。而使用脚本语言来做动态更新的app也不在少数。
本文先讨论使用html5 + js来插件化的技术。
请浏览一篇文章来脑补一下,我们要做啥 分析支付宝客户端的插件机制
当然,现在的支付宝版本已经告别了这种显性插件化的机制。后面会具体说。
另外还要补充一个前提,我们绝对不做纯html5+js的app,因为稍复杂的app,使用纯html5的方式,只会给自己挖坑,现阶段,native+部分简单逻辑的html5才是真正切合实际的方案。这个问题不展开讨论了。
二、应该准备点什么?
首先我们得准备点东西,当然你要熟悉OC语言(swift亦可),然后你要了解html语言,能写几句js。
然后我们绝不用历史上&著名&的PhoneGap来做,因为它真的很弱。也不能简单的使用UIWebViewDelegate的一个方法来做简单的js 和 OC的通信,因为那是远远不够的。
我们要使用的是很早就出现并广泛运用在mac平台,但直到iOS7才进入移动平台的JavaScriptCore。这真的是iOS7开始原生提供的,真的不是私有的,真的你随便用。
三、JavaScriptCore基础知识
3.1 JavaScriptCore是什么?
JavaScriptCore框架是基于webkit中以C/C++实现的JavaScriptCore的一个包装,之前广泛应用于mac平台,从iOS7开始,apple主动将其加入到iOS SDK中。JavaScriptCore让Objective-C和JavaScript代码的交互变得更加简单和直接。
JavaScriptCore中有几个重要的东西:
#import &JSContext.h&
#import &JSValue.h&
#import &JSManagedValue.h&
#import &JSVirtualMachine.h&
#import &JSExport.h&
他们都是日常使用中经常用到的东西。后面会结合实例,介绍他们都是干嘛的。
3.2 iOS如何使用JavaScriptCore?
在需要的地方,引入:
#import JavaScriptCore/JavaScriptCore.h
3.3 JavaScriptCore能用来做什么?
3.3.1 通过OC执行js方法或调取js属性。
比如下面的一个例子:
JSContext *context = [[JSContext alloc] init];
[context evaluateScript:@&var arr = [1, 2, 'This is js string'];var sum = function(a, b) { return a+b;}&];
JSValue *jsArray = context[@&arr&];
JSValue *jsSum = context[@&sum&];
JSValue *jsSumResult = [jsSum callWithArguments:[NSArray arrayWithObjects:@12, @33, nil]];
JSContext对象是JS的运行环境,通过 -evaluateScript 方法可以运行一段javaScript。javaScript的所有变量方法都会在JSContext对象中妥善的保存。通过对JSContext对象的一些操作,可以调用javaScript的方法,或者存取javaScript的对象。
之前见到的JSVirtualMachine顾名思义,是javaScript的虚拟机,是为JSContext提供运行资源。JSVirtualMachine的具体使用在后面也会讲到。
但是我们的JSContext *context 是通过 init方法生成的啊,看似并没有搀和到JSVirtualMachine啊?但是其实,通过init方法生成的JSContext对象,在init方法内部,仍然会自动线生成一个JSVirtualMachine,然后调用JSContext 对象的 -initWithVirtualMachine 方法。故,一个JSContext对象,必定要对应着一个JSVirtualMachine对象。
同一个JSVirtualMachine中的若干个JSContext可以互相交换方法对象等等,但是不同的JSVirtualMachine不能互相交换任何JSContext的资源。
下图来自苹果官方,很形象的描述了这一点。
:(不知为何,苹果删除了官方文档中关于JavaScriptCore的部分。。擦咧。。。)
JSValue是JavaScriptCore中一个重要的类,前面说到,我们使用JSContext 和 JSVirtualMachine 开拓了一个运行和保留javaScript的空间,而JSContext中javaScript的各个方法和属性对应着JSValue。
JSValue也是OC 和 javaScript 互相访问和修改的中间体,所有OC 和 javaScript的跨语言操作都要通过JSValue一些方法进行。
比如我们示例代码里的,JSValue *jsArray,jsArray对应着javaScript中的一个 array对象:arr。所以我们可以对jsArray进行一些操作,从而操作javaScript 中的 arr。
jsArray[0];//1
jsArray[2];//This is js string
jsArray[1] = 49;//修改arr 的第二个元素。
jsArray[@&length&];//结果是3,调用js arr对象的方法。
又比如我们示例代码里的,jsSum,对应着sum function,因此我们可以通过操作jsSum从而调取javaScript中的 sum function。
JSValue *jsSumResult = [jsSum callWithArguments:[NSArray arrayWithObjects:@12, @33, nil]];
//jsSumResult = 45;
可见,我们可以方便的通过JSValue对象的 callWithArguments:方法来直接调取 js 的 function。js function的多参数,在OC中,由NSArray组装而成。
3.3.2 通过js执行OC方法或调取OC属性。
苹果介绍,有两种方式可以方便的通过js 调用 OC:
Block 用来调用方法。 JSExport protocol 用来调用对象。
//我们有一个OC方法,提供给js调用
- (NSInteger)sumWithA:(NSInteger)a B:(NSInteger)b C:(NSInteger)c
return a + b +
- (void)jsToOcFunction
JSContext *context = [[JSContext alloc] init];
context[@&sumNums&] = ^(NSInteger a, NSInteger b, NSInteger c) {
return [self sumWithA:a B:b C:c];
JSValue *sum = [context evaluateScript:@&sumNums(7, 56, 22)&];
NSLog(@&sum
%@&, sum);//sum
在例子中,我们定义了一个OC方法:sumWithA:(NSInteger)a B:(NSInteger)b C:(NSInteger)c,提供给js调取使用。
在调取时,我们首先声明一个JSContext,然后对context 的sumNums 赋予了一个OC的Block,Block内执行了我们之前提供的OC方法。
然后我们通过context的 -evaluateScript方法执行了一个js方法,尝试调用OC函数。最终看到了调取成功的结果。
我们再举一个例子,来说明JSContext 在js 调用 OC方法中的重要性。
//尝试用OC来实现一个JavaScriptCore所不具有的Log
JSContext *context = [[JSContext alloc] init];
context[@&log&] = ^() {
NSLog(@&+++++++Begin Log+++++++&);
NSArray *args = [JSContext currentArguments];
for (JSValue *jsVal in args) {
NSLog(@&%@&, jsVal);
JSValue *this = [JSContext currentThis];
NSLog(@&this: %@&,this);
NSLog(@&-------End Log-------&);
[context evaluateScript:@&log('ider', [7, 21], { hello:'world', js:100 });&];
+++++++Begin Log+++++++
[object Object]
this: [object GlobalObject]
-------End Log-------
这个经典的例子来自于 Ider的blog
例子中有两个关键点:
[JSContext currentArguments] 类方法可以拿到js函数中的所有参数列表。每个参数在OC中也都用JSValue 描述。 [JSContext currentThis] 类方法可以拿到调用该方法的对象。
需要特别注意的是:
1. 不论在任何情况下,不要在Block中直接使用外面的JSValue对象, 而应该把JSValue当做参数来传进Block中。
2. 不论在任何情况下,不要在Block中直接使用外面的JSContext对象, 而应该使用 [JSContext currentContext]获取。
上面我们看到了js调取OC方法的例子,下面我们看js通过JSExport protocol调取OC属性的例子:
//使用rumtime 为一个系统控件UIButton增加JSExport protocol
@protocol UIButtonExport
- (void)setTitle:(NSString *)title forState:(UIControlState)
- (void)changeTitle
class_addProtocol([UIButton class], @protocol(UIButtonExport));
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@&你好 OC& forState:UIControlStateNormal];
button.frame = CGRectMake(100, 100, 100, 100);
[self.view addSubview:button];
JSContext *context = [[JSContext alloc] init];
context[@&button&] =
[context evaluateScript:@&button.setTitleForState('你好 js', 0)&];
而除了上述通过runtime的方式增加JSExport protocol之外,还可以通过category的方式,比如:
//UIButton+js.h
@protocol UIButtonExport
- (void)setTitle:(NSString *)title forState:(UIControlState)
@interface UIButton (js)
可以看到,如果想要在js中调用OC 的类或者对象的方法,需要将方法在JSExport protocol中声明。
下面再举一个更复杂的例子。
//列出书的title
var bookTitleList = function(book1, book2) {
var book1Title = book1.
var book2Title = book2.
return 'list:'+ book1Title + book2T
//创建两本书的合订本
var makeBookFromTwoBooks = function(book1, book2) {
var title = book1.title + book2.
var page = book1.page + book2.
return Book.makeBookWithTitlePage(title, page);
@protocol BookExports
@property NSString *
@property NSI
+ (Book *)makeBookWithTitle:(NSString *)title page:(NSInteger)
@interface Book : NSObject
@property NSString *
@property NSI
+ (Book *)makeBookWithTitle:(NSString *)title page:(NSInteger)
#import &Book.h&
@implementation Book
+ (Book *)makeBookWithTitle:(NSString *)title page:(NSInteger)page
Book *book = [[Book alloc] init];
book.title =
book.page =
- (void)moreExportsTest
JSContext *context = [[JSContext alloc] init];
NSString* path = [[NSBundle mainBundle] pathForResource:@&book& ofType:@&js&];
NSString *jsString = [NSString stringWithContentsOfFile:path encoding:NSStringEncodingConversionAllowLossy error:nil];
[context evaluateScript:jsString];
Book *book1 = [Book makeBookWithTitle:@&资治通鉴第一部& page:330];
Book *book2 = [Book makeBookWithTitle:@&资治通鉴第二部& page:520];
JSValue *fucntion = context[@&bookTitleList&];
JSValue *result = [fucntion callWithArguments:@[book1, book2]];
NSLog(@&result
%@&,result.toString);
list:资治通鉴第一部资治通鉴第二部
context[@&Book&] = [Book class];
JSValue *function = context[@&makeBookFromTwoBooks&];
JSValue *jsResult = [function callWithArguments:@[book1, book2]];
Book *newBook = [jsResult toObject];
NSLog(@&newBook
title %@ page: %ld&,newBook.title, (long)newBook.page);
title 资治通鉴第一部资治通鉴第二部 page: 850
第一段js,是我们的javascript文件。我们在其中定义了两个方法。
第二段,是我们定义了一个Book类,可以看到Book对象有两个属性:title 和 page,有一个类方法:+ (Book )makeBookWithTitle:(NSString )title page:(NSInteger)page,用来生成新的Book。这个方法将在js中被调用。
然后我们声明了,@protocol BookExports ,将需要在js中直接访问的属性和方法放置进去。
最后,让我们的Book类遵循BookExports protocol(@interface Book : NSObject )。
这样一个可在js中直接访问的类就生成完毕了。
最后一段是我们的运行代码。
首先将一段js代码加载斤JSContext中并执行。之后声明两个Book对象,book1 book2。将其作为参数传入js函数bookTitleList中。可以看到执行结果与预期相同。在js中,我们直接book1.title取出了OC对象的属性。
紧接着,我们执行了第二个js函数,在其中,用js调用了OC的Book的类方法,创建出了一个新的OC 的Book对象并返回。
到这里,例子就讲完了。可以看到通过神奇的ScriptCore,OC语言和javascript语言几乎畅通无阻。而这将是我们以后构建可插件化的iOS架构的基础。

我要回帖

更多关于 node.js用来做什么 的文章

 

随机推荐