`

将一些js库改写成符合cmd规范的模块

 
阅读更多

在进行seajs编码的时候,遇到很到js库都不是使用cmd规范进行编码的。这时怎么办呢?当然是改写喽

第一是:jQuery了,版本jquery-1.8.1.js(不同的版本有不同的改法)

//查询到define,将那边的if语句替换成如下格式,O啦
if ( typeof define === "function" && define.cmd) {
	define( function () { return jQuery; } );
}

 第二是:H5的音频库,版本buzz-1.1.8.js

//查询到define,将附近的语句替换成如下代码
if (typeof module !== "undefined" && module.exports) {
        module.exports = factory();
    } else if (typeof define === "function" && define.cmd) {
        define(factory);
    } else {
        context.buzz = factory();
    }

 第三是:SVG图片库,版本Raphael-2.1.2.js

// AMD support,稍微复杂一点,查询到此处替换成如下代码
    if (typeof define === "function" && define.cmd) {
        // Define as an anonymous module
        define(function(require, exports, module) {
			var eve = require("eve");
            return factory(glob, eve);
        });
    } else {
        // Browser globals (glob is window)
        // Raphael adds itself to window
        factory(glob, glob.eve || (typeof require == "function" && require('eve')) );
    }

 好了,以上就是今天介绍的三个js的cmd改写方法,其他的以后再说

下面简单说一下如何使用

step1,:这是index.html代码

<!DOCTYPE HTML>
<html>
<head>
	<title>timeline脚本</title>
	<script type="text/javascript" src="sea.js"></script>
	<script type="text/javascript">
		seajs.config({
			alias:{
				'jQuery': 'lib/jquery-1.8.1.js',
				'Raphael': 'lib/raphael.js',
				'Buzz': 'buzz.js'
			}
		});
		seajs.use(['jQuery','Buzz','Raphael','main'], function($, Buzz, Raphael,main){
			$(function(){
				main.start();
			});
		});
	</script>
</head>
<body>
	<canvas id="myview">您的浏览器不支持,请更换现代浏览器</canvas>
	<button id="mybutton">click</button>
	<div id="timer"></div>
</body>
</html>

 

step2:这里是main.js脚本,程序的入口

define("main",function(require, exports, module){
	var timeline = require("timeline");
	var $ = require("jQuery");
	var buzz = require("Buzz");
	var raphael = require("Raphael");
	
	exports.start = function(){
		var mybutton = $('#mybutton');
		mybutton.click(function(){
			alert(123);
		});
		// 在坐标(10,50)创建宽320,高200的画布
		var paper = Raphael(10, 50, 320, 200);
		 
		// 在坐标(x = 50, y = 40)绘制半径为 10 的圆
		var circle = paper.circle(50, 40, 200);
		 
		// 给绘制的圆圈填充红色 (#f00)
		circle.attr("fill", "#f00");
		 
		// 设置画笔(stroke)的颜色为白色
		circle.attr("stroke", "#317");
		
		var mySound = new buzz.sound( "sound/start", {
			formats: [ "ogg", "mp3", "acc" ]
		});
		mySound.play();
	};
	
	
});

 step3:其他的就是一些脚本库了,自己看情况添加,仅作练习使用。附件中有我上传的一些源码,直接运行index.html就可以听见声音,看见效果。音效可能稍微有点恐怖,O(∩_∩)O哈哈~

 

 

分享到:
评论

相关推荐

    简单分页插件simplePagination改造为CMD模块

    改造的关键在于将这个全局函数封装成一个符合CMD规范的模块。 1. **CMD模块化改造** - 将`simplePagination.js`中的全局函数改写为一个立即执行函数表达式(IIFE),并将初始化方法作为返回值。 - 在IIFE内部,可以...

    js一般方法改写成面向对象方法的无限级折叠菜单示例代码

    在介绍如何将使用一般方法实现的无限级折叠菜单改写成面向对象的方式之前,需要了解几个重要的概念和知识点。 首先,无限级折叠菜单是一种网页元素,用户可以通过点击来展开或折叠菜单项,这种功能在导航栏中尤为...

    js 逆向实战之webpack 改写

    在本节中,我们将探讨 JS 逆向实战之 Webpack 改写的技术要点。Webpack 是一个流行的 JavaScript 模块加载器和打包工具,广泛应用于前端开发中。通过对 Webpack 的逆向工程和改写,我们可以更好地理解其工作原理,并...

    cpca模块改写.rar

    在IT行业中,Python是一种广泛应用的编程语言,以其简洁明了的语法和强大的库支持而闻名。在这个场景中,我们关注的是一个名为"cpca...在使用或改写此模块时,理解这些背景知识将有助于更好地实现目标功能并优化代码。

    js 逆向实战之分离式 webpack 非 IIFE 改写

    非 IIFE 改写的主要思想是将模块定义在一个对象中,然后将该对象导出,以便其他模块可以使用。 模块加载器 在 Webpack 中,模块加载器是负责加载和管理模块的组件。它可以将模块定义在一个对象中,然后将该对象...

    CCS cmd 文件的设定

    ### CCS cmd 文件的设定 #### 一、概述 在CCS(Code Composer Studio)环境中,`.cmd`文件(Command File)是一种用于控制DSP(Digital Signal Processor)应用程序存储布局的关键配置文件。这种文件允许开发者通过一...

    野火pid助手库函数版本将野火pid助手hal协议改写成标准库了,

    野火pid助手库函数版本将野火pid助手hal协议改写成标准库了,需要的朋友可以下载使用,稍加修改即可使用,注释写的很全,一直抱怨没有标准库版本的野火pid协议,就不能使用野火的pid调试助手,于是抽空改写了个标准...

    野火pid助手库函数版本将野火pid助手hal协议改写成标准库了

    野火pid助手库函数版本将野火pid助手hal协议改写成标准库了,需要的朋友可以下载使用,稍加修改即可使用,注释写的很全,一直抱怨没有标准库版本的野火pid协议,就不能使用野火的pid调试助手,于是抽空改写了个标准...

    stm32固件库改写文件

    linux搭建stm32开发环境,所必须的文件 对stm32固件库的改写

    ArcGIS For JS 改写的热力图

    ArcGIS For JavaScript (简称 ArcGIS for JS) 是Esri公司推出的一款强大的地图开发库,用于在Web应用中集成地理信息系统功能。它提供了一套完整的API,用于创建交互式的地图服务,包括矢量图层、栅格图层、地形图层...

    将函数cvvHist1D改写成用折线方式绘制直方图。

    将函数cvvHist1D改写成用折线方式绘制直方图。方法是将线段方式中每条线段的上端点连接起来。

    live555 的openRTSP 改写

    开发者可以通过这些文件了解改写的具体实现细节,学习如何将命令行工具改造成面向对象的客户端程序。 总结,这个项目涉及到了实时流媒体协议RTSP的使用,以及开源库live555的深入理解。通过对openRTSP的改写,实现...

    28035.zip_28034 cmd_28035下载_28035例程_F28034和f28035_f28035ti例程

    "28035.zip_28034 cmd_28035下载_28035例程_F28034和f28035_f28035ti例程"这个标题暗示了资源包内包含的是与F28035和F28034相关的命令行工具(cmd)以及相关的下载和例程。 描述中提到的“TI公司F28035的标准例程”...

    Web端RSA加密机密库包含RSA.js Barrett.js BigInt.js JavaScript文件,直接解压即可使用

    RSA加密脚本 JavaScript 参考:Blackberry10 使用js+HTML5开发 RSA加密解密时遇到的问题:BB10端使用js加密与解密, 服务器端使用加密与解密 1,加密非常的简单代码机会上没怎么修改,另外js加密可能出现的问题在BB10 ...

    窦娥冤改写成小说.docx

    窦娥冤改写成小说.docx

    递归程序用栈改写为非递归

    C语言,将一个递归程序用栈改写为非递归,其中用到栈的基本操作

    oracle ebs 11i总帐、应收、应付、库存、采购、固定资产、项目会计模块表

    以下是对各模块的详细介绍: 1. **总账模块**: 总账模块是财务系统的核心,负责组织的全部财务交易记录。它包括日记账、分类账、财务报表和期末处理等功能。用户可以创建自定义的会计科目表,进行交易输入,同时...

    洪水狂奔而来.改写成拟人句.docx

    - 文档提供了两个句子要求改写成拟人句。例如,"洪水狂奔而来"可以改为"洪水如狂怒的巨兽,不顾一切地席卷而来"。这样的改写赋予了洪水有如动物般的狂暴和力量,使得描述更形象。 - 另一句"山洪咆哮着,像一群受惊...

Global site tag (gtag.js) - Google Analytics