js调用flash中的方法

kingagile 2012-12-19 10:19:04
1.html代码
------------------------------
<div>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="myswf" width="510" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="../images/flash.swf" />
<param name=FlashVars />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="images/flash1.swf" quality="high" wmode="transparent" width=510 height=510 name=flashvars type=application/x-shockwave-flash pluginspage=http://www.macromedia.com/go/getflashplayer>
</embed>
</object>
</div>

<script language="javascript" type="text/javascript">
function btnOK() {
thisMovie("myswf").begin();
}

function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
} else {
return document[movieName]
}
}
</script>
----------------------------------------

2.这是flash中的脚本
------------------------------------------
//导入ExternalInterface类
import flash.external.ExternalInterface;
//这个参数是说js里调用as里的函数名
var methodName:String = "begin";
//这个是在该方法中被解析的对象,就是函数里的this 指向谁
var instance:Object = null;
//允许js中的flAlert()调用flash中的showAlert()
ExternalInterface.addCallback(methodName,instance,start);

function start()
{
btnWait._alpha = 100;
btnStart._alpha = 0;
btnSuc._alpha = 0;
btn_mc._visible = false;
if (count < turns)
{
_root.pointer._rotation = _root.pointer._rotation + 12 * count;
if (_root.pointer._rotation == 0)
{
count = count + 1;
} // end if
}
else if (count2 > 0)
{
_root.pointer._rotation = _root.pointer._rotation + 12 * count2;
if (_root.pointer._rotation == 0)
{
count2 = count2 - 1;
} // end if
}
else
{
_root.pointer._rotation = _root.pointer._rotation + 12;
if (_root.pointer._rotation == 360 / totleNum * (stopNum - 1) || _root.pointer._rotation == 360 / totleNum * (stopNum - 1) - 360)
{
_root.pointer._rotation = 360 / totleNum * (stopNum - 1);
clearInterval(t);
btnSuc._alpha = 100;
btnWait._alpha = 0;
getURL("javascript:flashOver(" + stopNum + ")", "");
} // end else if
} // end else if
} // End of the function

------------------------------
我这样写的调不了start方法,试了好多次都不行
...全文
314 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2012-12-19
  • 打赏
  • 举报
回复
plzzz 2012-12-19
  • 打赏
  • 举报
回复
er ----------------- *绑定方法star,要显示声明为public才行吧, *addCallback只有二个参数我记得
wtcsy 2012-12-19
  • 打赏
  • 举报
回复
啊 我发现我上传的时候吧html文件上传掉了 擦 新建个html 把这个复制进去 和那个flash同级 然后 记住要在本地的服务中运行 直接打开运行掉不到
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<style>
#c{ text-align:left; font-size:12px;}
#c div.btn{ width:90px; height:30px; border:1px solid #9C9C9B; background:url(btn.gif) 0 0 no-repeat;}
#c div.btn:hover{ background:url(btn.gif) 0 -30px no-repeat}
#c .file{width:90px; height:30px; opacity:0; cursor:pointer;}
#c .bar{
	width:350px; display:none;  padding:0 5px 5px; background:#FFFFE1;  border:1px solid #9C9C9B; margin-top:10px;
}
#c .list{ overflow:hidden; margin-top:5px; position:relative}
#c .loadbar{ width:100px; height:10px; overflow:hidden; border:1px solid #9C9C9B; float:left;  margin-right:5px;}
#c .bai{ float:left; display:inline-block;_zoom:1;*display:inline; width:35px; margin-left:10px; }
#c .info{float:left; height:14px; display:inline-block;_zoom:1;*display:inline; width:165px;overflow:hidden;word-break: break-all;word-wrap: break-word;}
#c .block{ width:0; height:10px; background:#9C9C9B;}
#c a{color:#2D5169; position:absolute; right:5px; top:0;}
</style>
<body>

<div id="c">
</div>

<script language="javascript" type="text/javascript">
	(function(doc){			  
		var window = this;
		var _extend = function(obj,o){
			for(var name in o){
				obj[name] = o[name];
			}
		}
		var _$q = function(name,p){
			return p.getElementsByTagName(name);				
		}
		var _$c = function(name,p){
			var elem = doc.createElement(name);
			p&&p.appendChild(elem);
			return elem;
		}

		window.upload = {
			options : {
				maxSize : 35, //30m的意思
				message : "文件不能超过{size}m"
			},
			init : function(options){
				_extend(this.options,options);
				_extend(this,this.options);
				if(!this.elem || !this.elem.nodeName){
					return;
				}
				var t = new Date().getTime();
				var ie = doc.all,
					self = this;
				if(ie){
					this.elem.innerHTML = [
						"<object id='flash_z'  classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='90' height='30'>",
						"<param name='FlashVars' VALUE='' />",
						"<param name='wmode' value='transparent'/>",
						"<param name='Movie' value='upload.swf?"+t+"' />",
						"<param name='Src' value='upload.swf?"+t+"' />",
						"<param name='WMode' value='Window' />",
						"<param name='Scale' value='NoScale' />",
						"<param name='BGColor' value='#cccccc' />",
						"<param name='AllowNetworking' value='all' />",
						"<param name='AllowFullScreen' value='true' />",
						"<param name='AllowScriptAccess' value='always' />",
						"</object><div class='bar'></div>"						
					].join("");	
					this.flash = this.elem.childNodes[0];
					this.bar = this.elem.childNodes[1];
					this.flash.style.display = "none";
					this.flashComplete = function(){
						alert("弹出了这个 说明as 调用了 js"); //看这里
						this.flash.style.display = "block";
						this.flash.init(this.url+"_____"+this.maxSize); //这里是js调用as的
					}
					
				}
			}
		}
	})(document);
	
	upload.init({
		elem    : document.getElementById("c"),
		url     : "upload.php",
		maxSize : 30
	});
</script>

</body>
</html>
kingagile 2012-12-19
  • 打赏
  • 举报
回复
引用 2 楼 wtcsy 的回复:
写法应该没什么问题哟 但是 js的写法好老 as 还是2.0的语法 估计有flash的兄弟都是玩3.0的了 想帮你调试都不大可能 我这里有个资源 里面有js 调用as as调用 js的方法 如果你有 flash编辑器 (必须支持as3.0) 可以到 页面在出事化的时候就是js掉as 的init方法
php看不懂啊。也没看到JS的代码
wtcsy 2012-12-19
  • 打赏
  • 举报
回复
写法应该没什么问题哟 但是 js的写法好老 as 还是2.0的语法 估计有flash的兄弟都是玩3.0的了 想帮你调试都不大可能 我这里有个资源 里面有js 调用as as调用 js的方法 如果你有 flash编辑器 (必须支持as3.0) 可以到 页面在出事化的时候就是js掉as 的init方法 http://download.csdn.net/download/wtcsy/4888375
【复现】并_离网风光互补制氢合成氨系统容量-调度优化分析(Matlab代码实现)内容概要:本文围绕“并_离网风光互补制氢合成氨系统容量-调度优化分析”的Matlab代码实现展开,旨在通过科研复现的方式,深入探讨风光互补发电系统与制氢、合成氨耦合的综合能源系统优化问题。文章聚焦于系统的容量配置与运行调度双重优化,利用Matlab平台构建数学模型,并可能结合YALMIP等优化工具包求解,以实现经济性、可靠性和环保性的多目标平衡。文强调了科研工作借鉴已有成果(复现)的重要性,并倡导研究者应具备严谨的逻辑思维、善于借力,并追求具有创新性的研究突破。; 适合人群:具备Matlab编程基础,从事新能源、综合能源系统、电力系统优化、氢能或化工过程等领域的科研人员和工程技术人员。; 使用场景及目标:① 复现并学习风光互补制氢合成氨系统的容量配置与调度优化模型;② 掌握利用Matlab进行综合能源系统建模与优化求解的方法;③ 获取可用于自身科研工作的代码资源和技术参考。; 阅读建议:读者应按文档提供的线索,从公众号“荔枝科研社”获取完整的代码和资料包,并结合所提供的网盘链接下载必要的软件(如YALMIP)进行实践。在学习过程,应重点关注模型的构建思路、优化算法的选择与实现,并尝试在复现的基础上进行改进和创新。
内容概要:本文档围绕“【SCI一区复现】基于配电网韧性提升的应急移动电源预配置和动态调度(上)—MPS预配置(Matlab代码实现)”展开,系统介绍了通过Matlab代码实现应急移动电源(MPS)在配电网的优化预配置方法,旨在提升电网在极端事件下的韧性。资源聚焦于日前与日内两个时间尺度的协同调度优化,涵盖模型构建、目标函数设计、约束条件处理及求解流程等关键技术环节,强调工程实用性与学术先进性,是高水平科研论文复现与教学实践的重要参考资料。; 适合人群:面向具备电力系统、电气工程、自动化等相关专业背景,熟悉Matlab/Simulink仿真平台,从事科研、工程设计或技术研发工作的硕士/博士研究生、高校教师及行业工程师。; 使用场景及目标:① 复现SCI一区高水平论文的MPS预配置模型与优化算法;② 掌握配电网韧性评估与提升的关键技术路径;③ 深入理解多时间尺度下应急电源的优化调度机制;④ 为科研项目、学位论文或课题申报提供可验证的技术支撑与代码基础。; 阅读建议:本资源以Matlab代码为核心,建议读者结合文档的理论分析与代码实现同步学习,重点关注建模逻辑与算法实现细节。推荐关注公众号“荔枝科研社”获取完整代码包及相关说明材料,以便开展仿真验证与结果分析。

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧