js与flash交互操作1

//flash里传送值
'<param name="flashvars" value="' + this.getFlashVars() + '" />'
//flash里获取值
this.uploadURL=root.loaderinfo.parameters.uploadURL

SWFUpload.prototype.getFlashVars = function () {
   // Build a string from the post param object
   var paramString = this.buildParamString();
   var httpSuccessString = this.settings.http_success.join(",");
   
   // Build the parameter string
   return ["movieName=", encodeURIComponent(this.movieName),
           "&amp;uploadURL=", encodeURIComponent(this.settings.upload_url),
           "&amp;useQueryString=", encodeURIComponent

(this.settings.use_query_string),
           "&amp;requeueOnError=", encodeURIComponent

(this.settings.requeue_on_error),
           "&amp;httpSuccess=", encodeURIComponent(httpSuccessString),
           "&amp;assumeSuccessTimeout=", encodeURIComponent

(this.settings.assume_success_timeout),
           "&amp;params=", encodeURIComponent(paramString),
           "&amp;filePostName=", encodeURIComponent

(this.settings.file_post_name),
           "&amp;fileTypes=", encodeURIComponent(this.settings.file_types),
           "&amp;fileTypesDescription=", encodeURIComponent

(this.settings.file_types_description),
           "&amp;fileSizeLimit=", encodeURIComponent

(this.settings.file_size_limit),
           "&amp;fileUploadLimit=", encodeURIComponent

(this.settings.file_upload_limit),
           "&amp;fileQueueLimit=", encodeURIComponent

(this.settings.file_queue_limit),
           "&amp;debugEnabled=", encodeURIComponent

(this.settings.debug_enabled),
           "&amp;buttonImageURL=", encodeURIComponent

(this.settings.button_image_url),
           "&amp;buttonWidth=", encodeURIComponent(this.settings.button_width),
           "&amp;buttonHeight=", encodeURIComponent

(this.settings.button_height),
           "&amp;buttonText=", encodeURIComponent(this.settings.button_text),
           "&amp;buttonTextTopPadding=", encodeURIComponent

(this.settings.button_text_top_padding),
           "&amp;buttonTextLeftPadding=", encodeURIComponent

(this.settings.button_text_left_padding),
           "&amp;buttonTextStyle=", encodeURIComponent

(this.settings.button_text_style),
           "&amp;buttonAction=", encodeURIComponent

(this.settings.button_action),
           "&amp;buttonDisabled=", encodeURIComponent

(this.settings.button_disabled),
           "&amp;buttonCursor=", encodeURIComponent

(this.settings.button_cursor)
       ].join("");
};
//js调用flash中的方法
SWFUpload.prototype.callFlash = function (functionName, argumentArray) {
   argumentArray = argumentArray || [];
   
   var movieElement = this.getMovieElement();
   var returnValue, returnString;

   // Flash's method if calling ExternalInterface methods (code adapted from MooTools).
   try {
       returnString = movieElement.CallFunction('<invoke name="' + functionName +

'" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');
       returnValue = eval(returnString);
   } catch (ex) {
       throw "Call to " + functionName + " failed";
   }
   
   // Unescape file post param values
   if (returnValue != undefined && typeof returnValue.post === "object") {
       returnValue = this.unescapeFilePostParams(returnValue);
   }

   return returnValue;
};
//调用
SWFUpload.prototype.getStats = function () {
   return this.callFlash("GetStats");
};
SWFUpload.prototype.getFile = function (fileID) {
   if (typeof(fileID) === "number") {
       return this.callFlash("GetFileByIndex", [fileID]);
   } else {
       return this.callFlash("GetFile", [fileID]);
   }
};
SWFUpload.prototype.addFileParam = function (fileID, name, value) {
   return this.callFlash("AddFileParam", [fileID, name, value]);
};

SWFUpload.prototype.getMovieElement = function () {
   if (this.movieElement == undefined) {//this.movieName就是flash object的id
       this.movieElement = document.getElementById(this.movieName);
   }

   if (this.movieElement === null) {
       throw "Could not find Flash element";
   }
   
   return this.movieElement;
};

时间: 2024-12-23 02:26:01

js与flash交互操作1的相关文章

js与flash的操作接口函数

js与flash的操作接口函数 作者:yemoo -------------------------------------------------------------------------------- 可控制Flash Player的Javascript方法一览表: Play() ---------------------------------------- 播放动画 StopPlay()------------------------------------停止动画 IsPlayi

js与flash的交互FLASH连播控制器_Flash As

该实例主要实现了js与flash的交互,运行前提是浏览器安装了flash插件! 前段时间领导提出的一个问题:能否实现多个flash的连续播放? 查了相关资料并通过自己的努力,最终实现了如下一个简单的Flash连续播放的js脚本. 该功能的实现实际上相当简单,主要是要了解js对flash控制的接口函数,知道了这些,问题的难度马上就降到了1+1=?的级别. 复制代码 代码如下: var flashs=[    "http://60.210.98.23/theater/flash/2007-07/14

AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】_AngularJS

本文实例讲述了AngularJS实现与Java Web服务器交互操作的方法.分享给大家供大家参考,具体如下: AngularJS是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互. 准备工作 1.下载angular js库. 官网下载地址:https://angularjs.org/ 或者点击此处本站下载. 2.开发环境准备,由于是和Tomcat服务器

iOS: JS和Native交互的两种方法,iosjsnative交互

iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)stringByEvaluatingJavaScriptFromString:(NSString *)script; script 就是 JS 代码,返回结果为 js 执行结果. 比如一个 JS function 为 function testFunction(abc){ return abc; }; webv

javascript性能优化之DOM交互操作实例分析_javascript技巧

本文实例讲述了javascript性能优化之DOM交互操作技巧.分享给大家供大家参考,具体如下: 在javascript各个方面,DOM毫无疑问是最慢的一部分.DOM操作与交互要耗费大量时间,因为它们往往需要重新渲染整个页面或者某一部分.理解如何优化与DOM的交互可以极大提高脚本完成的速度. 1.最小化DOM更新 看下面例子: var list = document.getElementById("ul"); for (var i=0; i < 10; i++){ var ite

clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切_javascript技巧

我们在网页上放置一个复制按钮,主要用来方便用户复制链接之类的复杂文本,以往的做法是,通过JS依靠Flash,甚至借助jQuery庞大的js库来实现文本复制到剪贴板的.今天我要给大家介绍的是一款极现代的,不需要flash,不依赖任何其他js库的非常小的插件,它叫clipboard.js. 运行效果图:   HTML 首先加载本地clipboard.js文件. <script src="clipboard.min.js"></script> 然后就是在body中加上

前端弹出对话框 js实现ajax交互_javascript技巧

原本计划实现这样一个需求: 前台点击触发某业务动作,需要用户补充信息,不做跳转页面,弹窗的形式进行补充信息. 折腾出来了,但是最终没有用到. 代码还有些毛躁,提供大概实现逻辑.  实现思路:在窗口铺上蒙板以屏蔽原窗口功能按钮操作,在蒙板上层绝对定位实现弹窗,弹窗中的数据交互采用ajax方式. 出发弹窗事件用onclick.  关键细节:弹窗和原窗体本质是同页面,为了描述方便,姑且称底层窗体为父窗体,弹窗为子窗体.为了实现字父窗体的交互,需要在父窗体中做一些特别标签,以便选择器选择,并操作插入新的

最大化J2EE和数据库交互操作的性能

概述:大多数应用程序性能管理(APM)解决方案都只考虑和分析J2EE应用程序的某个层次的性能问题.这种方法不足以解决架构复杂的应用程序的性能问题.良好的APM工具应该能够让你从J2EE层深入到数据库层以确保性能问题被快速地解决. 情况并非越来越好,公司的网站性能下降到了极低点,失落的客户开始寻找其它厂商了.IT调查机构开始调查并且认为J2EE应用程序是响应时间较差的罪魁祸首.这立即给J2EE开发小组带来了很大的压力,他们必须确定并解决这个问题. J2EE开发小组在进行了一些最初的调查之后,他们认

提高J2EE层与数据库层交互操作能力优势

大多数应用程序性能管理(APM)解决方案都只考虑和分析J2EE应用程序的某个层次的性能问题.这种方法不足以解决架构复杂的应用程序的性能问题.良好的APM工具应该能够让你从J2EE层深入到数据库层以确保性能问题被快速地解决. 情况并非越来越好,公司的网站性能下降到了极低点,失落的客户开始寻找其它厂商了.IT调查机构开始调查并且认为J2EE应用程序是响应时间较差的罪魁祸首.这立即给J2EE开发小组带来了很大的压力,他们必须确定并解决这个问题. J2EE开发小组在进行了一些最初的调查之后,他们认为问题