CMP4 JavaScript API接口说明

下列函数的调用,需要先获取CMP所在flash的对象,也就是例子中的cmpo,获取方法见使用范例
方法名 说明 示例
cmp_api(); 只读,返回CMP所有支持的API信息,包括CMP支持的所有API var str = cmpo.cmp_api();
config(); 1,读取CMP当前所有的全局配置,返回一个Object对象,包含所有可读写的全局配置属性设置,以及其他一些只读属性 var config = cmpo.config();
2,读取配置的某个属性值,具体支持哪些属性,可用for in语句查询

var name = cmpo.config("name");

var name = cmpo.config().name;

3,修改某个属性的值,需传入属性名称和值

注意:修改属性仅是将值写入配置中,需要下次有相关的刷新(如发送事件)才应用新的值

cmpo.config("skin_id", "1");
item(); 1,返回当前播放项的一个Object对象,如果没有开始任何播放,将返回null,其包含当前项的所有属性 var item = cmpo.item();
2,返回当前播放项的某个属性值,具体支持哪些属性,可用for in语句查询

var src = cmpo.item("src");

var src = cmpo.item().src;

3,修改某个属性的值(一般不用) cmpo.item("src", "test.mp3");
list_xml(); 1,读取CMP当前列表内容,返回一个xml的字符串 var xml = cmpo.list_xml();
2,修改列表内容,需传入一个xml列表格式的字符串

var xml = '<list><m label="test" src="test.mp3" /></list>';

cmpo.list_xml(xml);

如果需要覆盖原有的音乐可以设置第2个参数,表示是否附加到原有列表后面,默认为true表示附加,传入false表示不附加,将重建列表并写入新的列表内容 cmpo.list_xml(xml, false);
list();

1,返回CMP列表数的所有信息,包括未打开的列表

将返回一个数组,数组每项都是一个音乐项对象,类型为Object

var arr = cmpo.list();
读取一级列表的个数 var num = cmpo.list().length;
返回第二个项,数组是从0开始的,第二个项索引就是1 var m2 = cmpo.list()[1];

如果这个音乐项是个目录,则会有children属性,表示它下面的子列表,也是一个数组

以此类推,这样我们可以逐个循环得到整个列表
当然音乐项也有parent属性,表示其父目录对象

var m2_arr = m2.children;

2,返回某个指定的项对象

参数可以是包含唯一key值Object型的项对象,也可以直接传入字符型key值

key值可以从上面1中的列表项对象中读取

var item = cmpo.list(m2);

var item = cmpo.list("ITEM_1");

3,读取项的某个属性 var src = cmpo.list("ITEM_1", "src");

如果传入的参数是项支持的一个方法名,则执行此项的某个方法

目前支持:play播放此项, open打开此目录, close关闭此目录, toggle开关切换, remove移除此项

cmpo.list("ITEM_1", "play");
skin_xml(); 只读,返回当前皮肤配置文件内容的xml字符形式 var xml = cmpo.skin_xml();
skin(); 1,读取皮肤元件的某个属性值,第1个参数表示皮肤元件位置,第2个是元件属性名

var width = cmpo.skin("console", "width");

var xywh = cmpo.skin("console.bt_play", "xywh");

2,修改元件的某个属性,如果修改成功将返回true cmpo.skin("console.bt_play", "xywh", "0, 0, 100, 20");
sendEvent();

往CMP发送事件

第1个参数是事件类型,所有支持类型见AS3中的所有事件类型列表

第2个参数是需要传入的数据(可选)

cmpo.sendEvent("view_play");

cmpo.sendEvent("view_play", 2);

addEventListener();

添加一个js侦听方法

第1个参数是事件类型,同上

第2个参数是回调函数名,字符串格式

cmpo.addEventListener("item_deleted", "del");

function del(data) { }

removeEventListener(); 移除一个已经注册的js侦听方法 cmpo.removeEventListener("item_deleted", "del");
cookie(); CMP的通用存储接口,可以在本地电脑存储并读取已经存储的数据,flash需启用本地存储(默认是10K容量),这些数据是永久储存的,而且跨浏览器

cmpo.cookie("name", "CMP4");

var name = cmpo.cookie("name");

query(); CMP的查询接口,用于特殊查询和执行服务,暂为高阶用户补用

cmpo.query("ws.wins.list.visible", "false");

var display = cmpo.query("ws.wins.list.visible");

关于CMP外接播放WMP的接口和应用见:https://github.com/cenfun/cmp/tree/master/cmp4/developer/wmp