js 怎么向flash 3.0 传参数

JavaScript09

js 怎么向flash 3.0 传参数,第1张

as3与页面实时通讯我想各位童鞋也都很常用,方法也有几种,下面也给大家整理下。

一直没去深入研究下AS3与JS的交互开发也就是SWF在html中的通信,最近出于项目要求被迫投入了,也在这里做个汇总

一:HTML中最快速的传值方式

在HTML中插SWF时,可以跟个参数,比如:

files/home.swf?id=”21″

在AS3里可以这样去接收

var

id:String=stage.loaderInfo.parameters["id"]

这种传值方式其实AS2的时候也是这样做的,到AS3时使用parameters 属性替换了AS1.0 和2.0

提供SWF文件参数作为主时间轴的技术,所以我们改用一下AS3的取值方式就行了.

这种方式只能是单边一次性传值,有时候会用得到,但需要与JS相互通信就不行了,还有,只能接收字符串.

二:使用外部通信接口ExternalInterface

这也是AS2时代进化来的,目前公认的最靠谱的通信方式.

使用方法:

1.JS调用AS3的函数

确定JS调用AS3之前,要在AS3中绑定调用函数,也就是说,只有AS3答应给的方法JS才能调用.

使用:ExternalInterface.addCallback(functionName:String,

closure:Function):void有两个参数:

functionName:String —

容器可用于调用函数的名称。

closure:Function — 要调用的 closure 函数。 这可能是一个独立的函数,或者可能是引用对象实例方法的

closure 方法。通过传递 closure 方法,回调实际上可以定向到特定对象实例的方法。

ExternalInterface.addCallback("getASVars",getASFun)

private function

getASFun(value:String):void {

//得到JS传来的值:value

}

好了,可以在JS中去调用这个方法了,调用前还要先取得插进HTML的SWF的ID,我们在HTML中不管用什么方式插都可以设置ID

例如先通过id为”mov”来获取对象,再调用上面绑定的方法:

function thisMovie(movieName) {

if (navigator.appName.indexOf("Microsoft")

!= -1) {

return window[movieName]

} else {

return

document[movieName]

}

}

thisMovie("mov").getASVars(value)

2.AS3调用JS的函数

AS3调JS直接使用call就行了

使用:ExternalInterface.call(functionName:String,

… arguments):*

这个方法有两个参数:

functionName:String — 要在容器中调用的函数的名称。

arguments — 传递到容器中的函数的参数。 您可以指定零个或多个参数,参数之间用逗号分隔。 这些参数可以是任何 ActionScript 数据类型。

当调用 JavaScript 函数时,ActionScript 类型自动封装到 JavaScript 类型中;当调用其它某个 ActiveX

容器时,将在请求消息中对参数进行编码。

例如:

ExternalInterface.call("setToJS","paramTest")

在JS中编写这个setToJS的函数

function

senToJS(value){

alert(value)//输出:paramTest

}看起来很爽,但也不是完全靠谱,这个接口还是会挑食的,只有在以下浏览器中才支持:

浏览器 操作系统 操作系统

Internet Explorer 5.0 及更高版本 Windows

Netscape 8.0 及更高版本

Windows Macintosh

Mozilla 1.7.5 及更高版本 Windows Macintosh

Firefox 1.0 及更高版本

Windows Macintosh

Safari 1.3 及更高版本 Macintosh

还有个安全沙箱的问题,如果出现安全沙箱警报,可以使用以下两种修正方法:

1.在包含 HTML 页中的 SWF 文件的 object

标签中,设置以下参数:

2.在 SWF 文件中,添加以下

ActionScript:

Flash.system.Security.allowDomain(sourceDomain)

function showTime() { 

  var now = new Date() 

  var nowTime = now.toLocaleString() 

  var date = nowTime.substring(0,10)//截取日期 

  var time = nowTime.substring(10,20) //截取时间 

  var week = now.getDay() //星期 

  var hour = now.getHours() //小时 

  //判断星期几 

  var weeks = ["日","一","二","三","四","五","六"] 

  var getWeek = "星期" + weeks[week] 

  var sc 

  //判断是AM or PM 

  if(hour >= 0 && hour < 5){ 

   sc = '凌晨' 

  } 

  else if(hour > 5 && hour <= 7){ 

   sc = '早上' 

  } 

  else if(hour > 7 && hour <= 11){ 

   sc = '上午' 

  } 

  else if(hour > 11 && hour <= 13){ 

   sc = '中午' 

  } 

  else if(hour> 13 && hour <= 18){ 

   sc = '下午' 

  } 

  else if(hour > 18 && hour <= 23){ 

   sc = '晚上' 

  } 

  document.getElementById('time').innerHTML ="当前时间:" + date+" " + getWeek +"&nbsp"+"   "+sc+"  "+time

  setTimeout('showTime()',1000) 

</script> 

调用方法: 

<body onload="showTime()"> 

<div id="time"></div> 

</body> 

2.简洁的办法: 显示格式:  当前时间: 2010年6月1日 10:00:00 星期一 

<htmtl>

<head></head>

<body> 

<div id="linkweb" style=" display:inline"></div> 

<script> 

  setInterval("document.getElementById('linkweb').innerHTML=new Date  ().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay  ())",1000) 

</script> 

</body>

</html>

在国内大家玩FC机器的时代,最早引人注目的文字 游戏 是霸王的大陆,吞食天地诸葛孔明传和圣火徽章外传。要知道早期FC文字 游戏 大家都不会去细分种类。诸如SLG,RPG,SRPG这些分类是当时的《电子 游戏 软件》早年叫《 游戏 集中营》中普及开来的叫法。

最早大家上手的文字 游戏 是我说的这三款为主。主要原因有两部是三国题材,大家对人物、剧情比较熟悉和热衷,霸王大陆的指令选项完全可以摸索出来。吞食天地2也很早出了盗版商的汉化版,而且质量很高。圣火徽章是走格子的SRPG,这个玩法比较新颖。指令的日文不是太难确认。所以这三部作品是诸多大陆文字 游戏 玩家的启蒙 游戏 。

最终幻想,勇者斗恶龙,重装机兵这些正统RPG剧情中全部是日文平假名片假名,大家看不懂剧情,导致一开始很少有玩家能够通关,直到专业杂志作出攻略本后大家才勉强上手。再到后期有很多盗版商做了汉化,大家终于看懂了剧情。

所以经历过的都知道,大陆最早风靡的FC文字 游戏 是霸王大陆,吞食天地2,和圣火徽章外传日本叫火炎纹章外传。

另外外星 科技 在FC末期开发过不少中文RPG让人映像深刻。

说到FC时代,那真是百家争鸣,在那个天马行空,没有参照物,摸着石头做 游戏 的时候,任何差错都有是炮灰,但是可以冲出来都是精品中的精品,这些 游戏 经过30多年的沉淀,一直来都是 游戏 的标杆,特别是RPG,这样讲究剧情的 游戏 ,更是不得了。

重装机兵

重装机兵在日本不是很火,但是在中国全是有着国民RPG的 游戏 ,主要是中文汉化,其次是可以开坦克,这个坦克的设计也符合许多人调性,特别是平衡上的社交,可以说是 游戏 一大亮点,其次 游戏 的剧情,可以说是沙箱 游戏 鼻祖,在世界末日的荒凉时代,主角跟红狼的剧情深入人心,音乐上也是一大亮点

吞食天地

你没有想到动作天尊CAPCOM,也能造出一款三国RPG 游戏 , 游戏 的剧情大家都懂,小爱同学就不说, 游戏 最大特色就是玩法上,在8位数字年代,就是简单的数值变化,也能让许多玩家玩的激动人心,心情澎湃,给许多人增加家人们很多回忆,这个 游戏 最经典地方就是,时间已经过去了30年,关于他的民间重制版,致敬版,还是层出不穷。你不得不说,这个 游戏 是多么伟大。

三国志2-霸王大陆NAMCO

别以为NAMCO只会做动作 游戏 ,其实他跟CAPCOM认真起来做RPG 游戏 是很可怕,三国虽然看上去跟普通战略 游戏 没什么区别,但是它是一款披着战略 游戏 的RPG, 游戏 里面加入经验系统,练级是这个 游戏 里面最让人开心地方。

勇者斗恶龙3ENIX

勇者斗恶龙在FC上到底出了几代,反正笔者是不知道,而且勇者斗恶龙,因为没有中文,所以在国内的欢迎程度,没有重装机兵好,所以勇者斗恶龙的局限在日本上, 游戏 素质是不错的,不然就不叫什么国民 游戏 ,但是是 游戏 一个最大特点就是容易遇敌,勇者斗恶龙的遇敌率是笔者玩过所有 游戏 中最高, 虽然不说明什么问题,但是一步一个敌人,真是一种可怕的回忆,而且还有这么多喜欢跟着玩,这个回忆真是有点太可怕了

FC时期的四大RPG,这个好像从来都没有评选过吧,都是玩家们自己心目中的看法,那个时候的中文 游戏 太少太少了,一开始一个都没有,我也是从快上高中时候才玩到的,以下说说我心目中的四大RPG 游戏 吧。

勇者斗恶龙

这里不分几代几代了,除了1代画面我看不了没玩以外,234代我都玩了,难度是越来越简单的,早期的RPG 游戏 系统设定还不够合理,练级练的人头疼,也就那时候能玩的下去,放现在估计是没有市场的,枯燥的刷怪一会就烦了,但当年勇者斗恶龙确实开辟了一个全新的 游戏 领域,RPG 游戏 真正的框架缔造者就是它了,等级系统,装备系统,迷宫,剧情套路,现在的RPG也依然是按着这个框架走的,勇者斗恶龙系列最著称的一点就是剧情了,这么老的 游戏 剧情是做的真好,越后面越好,FC上面我最喜欢的是4代,各方面都比较成熟了,特别是分章节分主角的玩法非常新鲜,不愧是RPG的鼻祖。

最终幻想

和勇者斗恶龙系列齐名的RPG 游戏 ,甚至比勇者斗恶龙出的系列都多,但它比勇者斗恶龙稍微晚了一年才出现,所以很多方面应该都是借鉴了勇者斗恶龙的玩法,但它仍然是有着自己独特的特点的,否则单纯的模仿是不可能和勇者斗恶龙齐名的,在FC时代,实现不了多好的 游戏 画面,所以重点也是放在了剧情和系统上面,玩起来和勇者斗恶龙还是挺有区别的,特别是背景的设定,勇者斗恶龙大多的设定是勇者,中世纪,欧洲,魔法,巨龙和各种怪物,而最终幻想的背景大多是 科技 和魔法并存的时空,这个设定持续了很久,最终幻想最频繁出现的就是飞船啦飞艇之类的设定。

重装机兵

这个 游戏 不知道在国外怎么样,但在国内绝对是RPG大佬之一,因为它算是FC偏末期的作品了,各方面表现都比较优秀,最重要的是这个 游戏 当年就有汉化版,时间是1996年,电脑还没有普及的年代,想玩个中文 游戏 还是很难的,所以这个 游戏 才有这么庞大的受众群体, 游戏 本身素质也特别高,它跳出了老套RPG的一些设定,加入了自己全新的理念,这里没有魔法只有 科技 和战车,时间也不再是什么中古时期而且现代或者说是未来的末世世界,由于战斗采用的是战车,所以不需要频繁的去练级了,不过刷钱还是必要的,这个 游戏 还是我人生中玩的第一款RPG 游戏 ,意义比较特殊。

吞食天地2

吞食天地一共也只出过两部作品,而且都是在FC上面,官方并没有发布任何续作或者复刻版,这个中国三国 历史 题材的RPG做的非常棒,应该是史上最好的三国RPG 游戏 了,不说什么续作,干嘛不给高清复刻一下呢?这么好的 游戏 真是浪费了,但是民间有不少复刻版和改版,还有蹭热度的一些所谓续作,其实都不是真的,可能卡普空的大IP太多了不稀罕这个吧 ,如今还有玩家在鼓捣这些改版 游戏 ,修改的都还不错,各种主角和故事情节,可以体验到不同三国角色的 游戏 故事。

刚好囧王者最近在写RPG编年史,刚好来写一下RPG的问题。任天堂的FC时代,其实距离现在大概有30多年了,已经非常遥远了。FC时代奠定了现在 游戏 的种类的雏形,现在流行的超级IP大多能在那个年代找到鼻祖。

而且在FC时代,由于机能的限制,动作 游戏 都相对简单,做得最好的 游戏 类型要数RPG,SLG类型的 游戏 了。那么在FC时代,有哪些RPG 游戏 能当得上FC上RPG的四大天王呢?

JRPG的鼻祖,日本国民RPG,DQ系列

最近囧王者在写《RPG编年史:DQ系列》的长篇文章,有兴趣的小伙伴,可以点进去看看。如果要说到RPG 游戏 ,无论是那个平台,都逃不过DQ系列的身影。在FC上呢,DQ可谓是代表了JRPG的精髓,一共出了4作,每一作都堪称RPG的里程碑。里面的各种系统和设定,也深渊的影响到日后RPG 游戏 的发展。所以DQ系列必定是FC时代RPG四大天王之一。

FF系列,一切幻想从这里开始---与DQ系列分庭抗礼的存在

如果说艾尼克斯的DQ系列是日本JRPG的代表作,是日本国民级的RPG的话。那么史克威尔的FF系列,就是与DQ系列分庭抗礼的存在。FF1是当时在FC上唯一能和DQ系列叫板的RPG 游戏 。特别是当年国内的JS们在引进的时候,不知道为什么把这么明显的FinalFantasy翻译成太空战士,搞的当年一大帮子人糊里糊涂的跟着叫了许多年。

在日本冷门,在中国大火的RPG大作,重装机兵

在FC辉煌的后期,在国内出现了一款RPG的神作-重装机兵。坦率的说,这款RPG在日本其实知名度并不是太高,至少是远远不如上面说到的DQ和FF的。但是这款RPG在国内的名气丝毫不弱于DQ和FF,这一切都得益于《重装机兵》的汉化版,感谢先锋卡通完成框架性汉化过程,也感谢 doubledr 大神的汉化修正版本。由于他们的努力,让我们玩到了一款原汁原味的汉化RPG大作。红狼的死,让囧王者当年很是伤心。

封神榜,第二次机器人大战,吞食天地

坦率的是说,除了上述三款RPG之外,其他的RPG 游戏 ,难分伯仲。例如国内在FC后期,涌现出了大量的RPG 游戏 ,霸王的大陆,圣火徽章(其实这俩应该叫SLG 游戏 ),封神榜,吞食天地,第二次机器人大战等,都是非常优秀的RPG 游戏 。但是他们和DQ,FF还有MM(重装机兵)比起来,还是差了那么点意思。也就不排个先后,都算成第四极吧。

每个人都有心中FC最佳RPG的排名,唯一不变、铁定能进前三的必有《重装机兵》,就冲这一点,足见其优秀

就我玩过的FC,RPG前五,七龙珠系列,吞食天地系列,封神榜,魔神英雄传,重装机兵。

封神榜,吞食天地,重装机兵,第二次机器人大战,霸王的大陆

过去年轻时候啥都好

重装机兵,吞食天地,哪吒三太子,最终幻想

其他不敢肯定,但是可以肯定的是必定有重装机兵和吞食天地