123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * 插入音乐命令
- * @file
- */
- UE.plugin.register("music", function() {
- var me = this;
- function creatInsertStr(url, width, height, align, cssfloat, toEmbed) {
- return !toEmbed
- ? "<img " +
- (align && !cssfloat ? 'align="' + align + '"' : "") +
- (cssfloat ? 'style="float:' + cssfloat + '"' : "") +
- ' width="' +
- width +
- '" height="' +
- height +
- '" _url="' +
- url +
- '" class="edui-faked-music"' +
- ' src="' +
- me.options.langPath +
- me.options.lang +
- '/images/music.png" />'
- : '<embed type="application/x-shockwave-flash" class="edui-faked-music" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
- ' src="' +
- url +
- '" width="' +
- width +
- '" height="' +
- height +
- '" ' +
- (align && !cssfloat ? 'align="' + align + '"' : "") +
- (cssfloat ? 'style="float:' + cssfloat + '"' : "") +
- ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >';
- }
- return {
- outputRule: function(root) {
- utils.each(root.getNodesByTagName("img"), function(node) {
- var html;
- if (node.getAttr("class") == "edui-faked-music") {
- var cssfloat = node.getStyle("float");
- var align = node.getAttr("align");
- html = creatInsertStr(
- node.getAttr("_url"),
- node.getAttr("width"),
- node.getAttr("height"),
- align,
- cssfloat,
- true
- );
- var embed = UE.uNode.createElement(html);
- node.parentNode.replaceChild(embed, node);
- }
- });
- },
- inputRule: function(root) {
- utils.each(root.getNodesByTagName("embed"), function(node) {
- if (node.getAttr("class") == "edui-faked-music") {
- var cssfloat = node.getStyle("float");
- var align = node.getAttr("align");
- html = creatInsertStr(
- node.getAttr("src"),
- node.getAttr("width"),
- node.getAttr("height"),
- align,
- cssfloat,
- false
- );
- var img = UE.uNode.createElement(html);
- node.parentNode.replaceChild(img, node);
- }
- });
- },
- commands: {
- /**
- * 插入音乐
- * @command music
- * @method execCommand
- * @param { Object } musicOptions 插入音乐的参数项, 支持的key有: url=>音乐地址;
- * width=>音乐容器宽度;height=>音乐容器高度;align=>音乐文件的对齐方式, 可选值有: left, center, right, none
- * @example
- * ```javascript
- * //editor是编辑器实例
- * //在编辑器里插入一个“植物大战僵尸”的APP
- * editor.execCommand( 'music' , {
- * width: 400,
- * height: 95,
- * align: "center",
- * url: "音乐地址"
- * } );
- * ```
- */
- music: {
- execCommand: function(cmd, musicObj) {
- var me = this,
- str = creatInsertStr(
- musicObj.url,
- musicObj.width || 400,
- musicObj.height || 95,
- "none",
- false
- );
- me.execCommand("inserthtml", str);
- },
- queryCommandState: function() {
- var me = this,
- img = me.selection.getRange().getClosedNode(),
- flag = img && img.className == "edui-faked-music";
- return flag ? 1 : 0;
- }
- }
- }
- };
- });
|