KodExplorer/static/js/lib/cmp4/plugins/ApiExample.as

146 lines
3.0 KiB
ActionScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
import flash.system.*;
public class ApiExample extends MovieClip {
//cmp的api接口引用
private var api:Object;
private var tw:Number;
private var th:Number;
private var msg:TextField;
public function ApiExample() {
msg = new TextField();
msg.background = true;
msg.multiline = true;
msg.wordWrap = true;
msg.backgroundColor = 0xffffff;
msg.alpha = 0.5;
msg.width = 400;
msg.height = 300;
addChild(msg);
Security.allowDomain("*");
root.loaderInfo.sharedEvents.addEventListener('api', apiHandler);
root.loaderInfo.sharedEvents.addEventListener('api_remove',removeHandler);
}
//用于忽略非预期的宽高调整要调整宽高请侦听resize或video_resize事件
override public function set width(v:Number):void {
}
override public function set height(v:Number):void {
}
private function removeHandler(e):void {
//用于回收内存
}
private function apiHandler(e):void {
//取得cmp的api对象和侦听key包含2个属性{api,key}
var apikey:Object = e.data;
//如果没有取到则直接返回
if (! apikey) {
return;
}
api = apikey.api;
//模块状态改变
api.addEventListener(apikey.key, "model_state", stateHandler);
//模块开始播放
api.addEventListener(apikey.key, "model_start", startHandler);
//播放器大小改变时
api.addEventListener(apikey.key, 'resize', resizeHandler);
//初始化调用
stateHandler();
resizeHandler();
//cookie
//api.cookie("mycookie_name", "123");
//var str:String = api.cookie("mycookie_name");
//output(str);
//5个窗口引用
/*
api.win_list["console"]
api.win_list["media"]
api.win_list["list"]
api.win_list["lrc"]
api.win_list["option"]
*/
//列表树引用
//api.win_list["list"].tree
//列表搜索引用
//api.win_list["list"].search
//视频和频谱对象引用
//api.win_list["media"].video
output("api example loaded");
}
private function resizeHandler(e:Event = null):void {
//获取cmp的宽高
tw = api.config.width;
th = api.config.height;
}
private function stateHandler(e:Event = null):void {
var state:String = api.config.state;
//output("model state change: " + state);
switch (api.config.state) {
case "undefined" :
break;
case "connecting" :
break;
case "buffering" :
break;
case "playing" :
break;
case "paused" :
case "stopped" :
break;
case "completed" :
break;
default :
}
}
private function startHandler(e:Event = null):void {
output("model start:" + api.item.label);
}
private function output(... rest):void {
var str:String = rest.join(", ");
api.tools.output(str);
str += "\n";
msg.appendText(str);
msg.scrollV = msg.maxScrollV;
}
}
}