亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dojoexternalinterface.as

?? 圖書管理系統包括圖書的增加、刪除、修改等功能
?? AS
字號:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*//** 
		An implementation of Flash 8's ExternalInterface that works with Flash 6
		and which is source-compatible with Flash 8. 
		
		@author Brad Neuberg, bkn3@columbia.edu 
*/

class DojoExternalInterface{
	public static var available:Boolean;
	public static var dojoPath = "";
	
	public static var _fscommandReady = false;
	public static var _callbacks = new Array();

	public static function initialize(){ 
		//getURL("javascript:dojo.debug('FLASH:DojoExternalInterface initialize')");
		// FIXME: Set available variable by testing for capabilities
		DojoExternalInterface.available = true;
		
		// extract the dojo base path
		DojoExternalInterface.dojoPath = DojoExternalInterface.getDojoPath();
		//getURL("javascript:dojo.debug('FLASH:dojoPath="+DojoExternalInterface.dojoPath+"')");
		
		// Sometimes, on IE, the fscommand infrastructure can take a few hundred
		// milliseconds the first time a page loads. Set a timer to keep checking
		// to make sure we can issue fscommands; otherwise, our calls to fscommand
		// for setCallback() and loaded() will just "disappear"
		_root.fscommandReady = false;
		var fsChecker = function(){
			// issue a test fscommand
			fscommand("fscommandReady");
			
			// JavaScript should set _root.fscommandReady if it got the call
			if(_root.fscommandReady == "true"){
				DojoExternalInterface._fscommandReady = true;
				clearInterval(_root.fsTimer);
			}
		};
		_root.fsTimer = setInterval(fsChecker, 100);
	}
	
	public static function addCallback(methodName:String, instance:Object, 
											method:Function) : Boolean{
		// A variable that indicates whether the call below succeeded
		_root._succeeded = null;
		
		// Callbacks are registered with the JavaScript side as follows.
		// On the Flash side, we maintain a lookup table that associates
		// the methodName with the actual instance and method that are
		// associated with this method.
		// Using fscommand, we send over the action "addCallback", with the
		// argument being the methodName to add, such as "foobar".
		// The JavaScript takes these values and registers the existence of
		// this callback point.
		
		// precede the method name with a _ character in case it starts
		// with a number
		_callbacks["_" + methodName] = {_instance: instance, _method: method};
		_callbacks[_callbacks.length] = methodName;
		
		// The API for ExternalInterface says we have to make sure the call
		// succeeded; check to see if there is a value 
		// for _succeeded, which is set by the JavaScript side
		if(_root._succeeded == null){
			return false;
		}else{
			return true;
		}
	}
	
	public static function call(methodName:String, 
								resultsCallback:Function) : Void{
		// FIXME: support full JSON serialization
		
		// First, we pack up all of the arguments to this call and set them
		// as Flash variables, which the JavaScript side will unpack using
		// plugin.GetVariable(). We set the number of arguments as "_numArgs",
		// and add each argument as a variable, such as "_1", "_2", etc., starting
		// from 0.
		// We then execute an fscommand with the action "call" and the
		// argument being the method name. JavaScript takes the method name,
		// retrieves the arguments using GetVariable, executes the method,
		// and then places the return result in a Flash variable
		// named "_returnResult".
		_root._numArgs = arguments.length - 2;
		for(var i = 2; i < arguments.length; i++){
			var argIndex = i - 2;
			_root["_" + argIndex] = arguments[i];
		}
		
		_root._returnResult = undefined;
		fscommand("call", methodName);
		
		// immediately return if the caller is not waiting for return results
		if(resultsCallback == undefined || resultsCallback == null){
			return;
		}
		
		// check at regular intervals for return results	
		var resultsChecker = function(){
			if(_root._returnResult != undefined){
				clearInterval(_root._callbackID);
				resultsCallback.call(null, _root._returnResult);
			}
		};	
		_root._callbackID = setInterval(resultsChecker, 100);
	}
	
	/** 
			Called by Flash to indicate to JavaScript that we are ready to have
			our Flash functions called. Calling loaded()
			will fire the dojo.flash.loaded() event, so that JavaScript can know that
			Flash has finished loading and adding its callbacks, and can begin to
			interact with the Flash file.
	*/
	public static function loaded(){
		//getURL("javascript:dojo.debug('FLASH:loaded')");
		
		// one more step: see if fscommands are ready to be executed; if not,
		// set an interval that will keep running until fscommands are ready;
		// make sure the gateway is loaded as well
		var execLoaded = function(){
			if(DojoExternalInterface._fscommandReady == true){
				clearInterval(_root.loadedInterval);
				
				// initialize the small Flash file that helps gateway JS to Flash
				// calls
				DojoExternalInterface._initializeFlashRunner();
			}	
		};
		
		if(_fscommandReady == true){
			execLoaded();
		}else{
			_root.loadedInterval = setInterval(execLoaded, 50);
		}
	}
	
	/** 
			Handles and executes a JavaScript to Flash method call. Used by
			initializeFlashRunner. 
	*/
	public static function _handleJSCall(){
		// get our parameters
		var numArgs = parseInt(_root._numArgs);
		var jsArgs = new Array();
		for(var i = 0; i < numArgs; i++){
			var currentValue = _root["_" + i];
			jsArgs.push(currentValue);
		}
		
		// get our function name
		var functionName = _root._functionName;
		
		// now get the actual instance and method object to execute on,
		// using our lookup table that was constructed by calls to
		// addCallback on initialization
		var instance = _callbacks["_" + functionName]._instance;
		var method = _callbacks["_" + functionName]._method;
		
		// execute it
		var results = method.apply(instance, jsArgs);
		
		// return the results
		_root._returnResult = results;
	}
	
	/** Called by the flash6_gateway.swf to indicate that it is loaded. */
	public static function _gatewayReady(){
		for(var i = 0; i < _callbacks.length; i++){
			fscommand("addCallback", _callbacks[i]);
		}
		call("dojo.flash.loaded");
	}
	
	/** 
			When JavaScript wants to communicate with Flash it simply sets
			the Flash variable "_execute" to true; this method creates the
			internal Movie Clip, called the Flash Runner, that makes this
			magic happen.
	*/
	public static function _initializeFlashRunner(){
		// figure out where our Flash movie is
		var swfLoc = DojoExternalInterface.dojoPath + "flash6_gateway.swf";
		
		// load our gateway helper file
		_root.createEmptyMovieClip("_flashRunner", 5000);
		_root._flashRunner._lockroot = true;
		_root._flashRunner.loadMovie(swfLoc);
	}
	
	private static function getDojoPath(){
		var url = _root._url;
		var start = url.indexOf("baseRelativePath=") + "baseRelativePath=".length;
		var path = url.substring(start);
		var end = path.indexOf("&");
		if(end != -1){
			path = path.substring(0, end);
		}
		return path;
	}
}

// vim:ts=4:noet:tw=0:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re8在线精品视频免费播放| 99久久精品情趣| 午夜日韩在线电影| 依依成人综合视频| 亚洲女同一区二区| 一区二区三区日本| 青青草成人在线观看| 日韩精品电影在线观看| 琪琪久久久久日韩精品| 经典一区二区三区| 国产91精品精华液一区二区三区| 久久精品国产亚洲一区二区三区| 美美哒免费高清在线观看视频一区二区 | 青青草国产精品97视觉盛宴| 日韩av不卡在线观看| 久久99国产精品尤物| 国产精品亚洲一区二区三区在线| 国产一区欧美日韩| 91美女片黄在线| 欧美一区二区三区系列电影| 精品久久久久久亚洲综合网| 国产午夜亚洲精品午夜鲁丝片 | 捆绑调教一区二区三区| 国产福利电影一区二区三区| 色综合中文综合网| 亚洲3atv精品一区二区三区| 久久精品久久综合| av在线一区二区三区| 欧美三级中文字| 国产丝袜美腿一区二区三区| 亚洲国产精品久久久久婷婷884| 免费成人美女在线观看| 丁香啪啪综合成人亚洲小说 | 欧美高清性hdvideosex| 精品日韩99亚洲| 亚洲人精品一区| 九色|91porny| 在线免费不卡电影| 26uuu亚洲婷婷狠狠天堂| 亚洲免费成人av| 狠狠色狠狠色综合日日91app| 91视频免费看| 久久久蜜桃精品| 青娱乐精品在线视频| 欧美在线免费观看视频| 国产色爱av资源综合区| 日韩电影在线一区二区三区| youjizz久久| 久久伊人蜜桃av一区二区| 午夜在线成人av| 91麻豆免费看| 国产精品久久久久久户外露出| 久久精品国产亚洲高清剧情介绍| 91久久香蕉国产日韩欧美9色| 国产拍欧美日韩视频二区| 日本伊人色综合网| 欧美三级在线看| 亚洲综合另类小说| 色久优优欧美色久优优| 最新日韩av在线| 成人高清免费在线播放| 久久久久久久免费视频了| 久99久精品视频免费观看| 欧美乱妇15p| 午夜电影一区二区三区| 色噜噜狠狠色综合中国| 亚洲男帅同性gay1069| 91丨九色丨蝌蚪富婆spa| 中文字幕高清不卡| 粉嫩13p一区二区三区| 久久影音资源网| 韩国v欧美v亚洲v日本v| 久久久不卡网国产精品二区 | 一个色妞综合视频在线观看| 色婷婷久久综合| 一区二区三区蜜桃| 欧美日韩一级二级| 水野朝阳av一区二区三区| 777久久久精品| 久久超碰97中文字幕| 精品国产亚洲在线| 国产成人夜色高潮福利影视| 国产喷白浆一区二区三区| 成人免费视频caoporn| 国产精品情趣视频| 色系网站成人免费| 亚洲午夜精品一区二区三区他趣| 欧美三区在线视频| 日韩黄色一级片| 26uuuu精品一区二区| 成人精品免费看| 一区二区三区不卡在线观看| 欧美日本在线看| 韩国成人精品a∨在线观看| 中文在线一区二区| 欧美午夜免费电影| 麻豆精品视频在线观看视频| 欧美激情一区二区三区全黄| 在线看日本不卡| 免费黄网站欧美| 中文字幕亚洲综合久久菠萝蜜| 欧美在线视频不卡| 蜜臀av一区二区在线观看| 国产午夜亚洲精品不卡| 在线观看日韩国产| 久久99精品国产.久久久久久| 国产精品久久久久久久久免费樱桃| 色综合久久综合网| 国内精品伊人久久久久影院对白| 中文字幕人成不卡一区| 日韩视频在线你懂得| 91美女片黄在线观看91美女| 另类专区欧美蜜桃臀第一页| 国产精品美女久久久久久久| 精品视频1区2区| 高清日韩电视剧大全免费| 亚洲成人av一区二区三区| 欧美国产一区在线| 日韩一级完整毛片| 欧美亚洲另类激情小说| 国产一区二区伦理片| 视频一区二区三区中文字幕| 国产精品久线观看视频| 精品国产亚洲在线| 91精品国产综合久久久久久漫画| 99久久久无码国产精品| 麻豆精品一区二区三区| 天堂蜜桃一区二区三区 | 免费人成在线不卡| 亚洲欧美一区二区三区久本道91| 精品国产乱码久久久久久久久| 91福利视频久久久久| 99re亚洲国产精品| 不卡的av电影在线观看| 国产精品一区二区三区99| 蜜臀av在线播放一区二区三区| 亚洲主播在线播放| 亚洲精品国久久99热| 国产精品三级电影| 久久久久国产精品麻豆| 久久日韩精品一区二区五区| 日韩视频一区二区在线观看| 欧美精品视频www在线观看| 91国内精品野花午夜精品 | 日韩欧美一区中文| 欧美日韩精品专区| 欧美日韩黄色一区二区| 91美女精品福利| 一本色道久久加勒比精品| 9l国产精品久久久久麻豆| 国产aⅴ精品一区二区三区色成熟| 美女视频黄 久久| 久久精品国产久精国产爱| 麻豆一区二区三| 精品一区二区三区在线观看| 美女一区二区久久| 久久99精品国产.久久久久久| 久久国产生活片100| 国产精品综合av一区二区国产馆| 麻豆国产精品官网| 国产成人在线视频网址| 成人教育av在线| 色婷婷av一区二区三区大白胸| 在线免费不卡电影| 91精品国产91久久久久久一区二区| 欧美另类一区二区三区| 日韩视频免费观看高清在线视频| 欧美成人精品高清在线播放| 26uuu精品一区二区三区四区在线| 久久精品日韩一区二区三区| 中文字幕中文乱码欧美一区二区| 亚洲免费大片在线观看| 青青草国产成人99久久| 国产河南妇女毛片精品久久久| 91在线国内视频| 欧美色图天堂网| 26uuu成人网一区二区三区| 中文字幕中文字幕一区| 婷婷夜色潮精品综合在线| 国产一区视频导航| 欧美日韩一区三区| 久久综合九色综合97婷婷女人| 国产精品激情偷乱一区二区∴| 夜夜嗨av一区二区三区中文字幕| 日本欧美大码aⅴ在线播放| 国产激情一区二区三区| 欧美在线小视频| 久久先锋影音av| 亚洲在线视频网站| 精品亚洲aⅴ乱码一区二区三区| 不卡的av电影| 精品伦理精品一区| 亚洲第一主播视频| 国产99久久久久久免费看农村| 欧美日韩久久一区二区| 国产精品伦一区| 蜜桃视频在线观看一区二区| 99久久精品国产一区二区三区| 欧美一区二区三区四区高清| 1024成人网|