⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callbackview.as

📁 本人做的Flash播放器源码,仅供大家参考并扩展
💻 AS
字号:
/**
* Callback to serverside script for statistics handling.
* It sends the current file,title,id and state on start and complete.
*
* @author	Jeroen Wijering
* @author	Nate Hanna
* @version	1.6
**/


import com.jeroenwijering.players.*;


class com.jeroenwijering.players.CallbackView extends AbstractView { 


	/** Currently playing item **/
	private var currentItem:Number;
	/** Currently playing item **/
	private var varsObject:LoadVars;
	/** Boolean for if a start call has already been sent for an item. **/
	private var playSent:Boolean = false;
	/** Small interval so both complete and play events won't be issued **/
	private var playSentInt:Number;
	/** Timestamp of the start of the movie **/
	private var startStamp:Number;


	/** Constructor **/
	function CallbackView(ctr:AbstractController,cfg:Object,fed:Object) {
		super(ctr,cfg,fed);
		if(config['callback'] != "analytics") {
			varsObject = new LoadVars();
		}
	};


	/** Send a callback on state change **/
	private function setState(pr1:Number) {
		if(pr1 == 3) {
			var dur = Math.round(new Date().valueOf()/1000 - startStamp);
			sendVars("stop",dur,true);
			playSent = false;
		} else if (pr1 == 2 && playSent == false) {
			playSentInt = setInterval(this,"sendVars",500,"start",0);
			playSent = true;
			startStamp = new Date().valueOf()/1000;
		}
	};


	/** save the currently playing item **/
	private function setItem(pr1:Number) {
		if(playSent == true && currentItem != undefined)  {
			var dur = Math.round(new Date().valueOf()/1000 - startStamp);
			sendVars("stop",dur,false);
			playSent = false;
		}
		currentItem = pr1; 
	};


	/** sending the current file,title,id,state,timestamp to callback **/
	private function sendVars(stt:String,dur:Number,cpl:Boolean) {
		clearInterval(playSentInt);
		if(config['callback'] == "analytics") {
			var idx = feeder.feed[currentItem]["file"].lastIndexOf("/");
			var fil = feeder.feed[currentItem]["file"].substr(idx+1);
			if(stt == "start") {
				getURL("javascript:urchinTracker('/start_stream/"+fil+"');");
			} else if (stt == "stop" && cpl == true) {
				getURL("javascript:urchinTracker('/end_stream/"+fil+"');");
			}
		} else {
			varsObject.file = feeder.feed[currentItem]["file"];
			varsObject.title = feeder.feed[currentItem]["title"];
			varsObject.id = feeder.feed[currentItem]["id"];
			varsObject.state = stt;
			varsObject.duration = dur;
			varsObject.sendAndLoad(config["callback"],varsObject,"POST");
		}
	};


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -