| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash游戏制作 > 文章正文 用户登录
谈谈BLOG营销中的
如何加入透明Flas
为新浪博客添加fl
flashget下载联盟
265联盟:“Flash
HKflash提供免费个
谈谈我做站失败的
谈谈个人网站发展
谈谈CNNIC 域名投
谈谈网站与网络营

谈谈Flash的一些语法基础和系统核心           

谈谈Flash的一些语法基础和系统核心

作者:佚名 来源:闪吧 作者: ox_thedarkness 更新:2007-1-13 20:43:27 错误报告 我要投稿

参与本文讨论:闪吧本文讨论帖
1 Flash的版本与兼容性
1.1 FlashPlayer6 (FlashMX)和FlashPlayer7 (Flash MX2004)的普及率

米噢~~ flash2004出现拉! 于是我赶紧的用……爽阿!!好多新特性,可是?
“你的flash我怎么看不了啊?”
会在论坛上看见这种回复,表明就连专业人士都不一定会跟进最新版本呢~~~辛辛苦苦做的flash大家都播放不了,岂不是很委屈?

那么,传说中的flash2004的播放器,flashplayer7.0的普及率如何呢?
请看Macromedia 官方报表:
http://www.macromedia.com/software/player_census/flashplayer/version_penetration.html

Worldwide Ubiquity of Macromedia Flash by Version - March 2004
(NPD Online - Worldwide Survey)

_________ Flash 6* ___ Flash 7*
US_______ 93.5%______ 52.5%
Canada___ 95.1%______ 60.6%
Europe___ 93.5%______ 59.9%
Asia______ 88.1%______ 58.7%


截至2004年3月,flashplayer7的普及率终于过半了~~~但是仍然有约40%的浏览用的是FlashPlayer6——对于他们而言,你精心准备的作品可能只是白板一张。 估计2004年暑假的时候 Asia地区就能超过80%的普及率了~~~目前还是输出6标准的文档比较合适。

1.2 建立通用的swf文件
那么,能否建立flashPlayer6和flashPlayer7通用的文件呢?
答案是肯定的。
如果一个文件同时符合flash6 和flash7标准,并且是以flashplayer7的方式发布的,那么它就能同时在flash6和flash7中播放。 你可以在 file -> Publish Settings -> Flash(文件 -> 发布设置) 里面找到一个version 的组合框来修改发布版本。 flash7中引入了很多新特性,比如:as2.0 、很多新函数等等。这些在flashplayer6所没有的东西在6中被忽略,返回值都是 undefined。另外,flash7和flash6语法上也有些许不同。要设计通用的文件必须小心这些。
如何知道某个咚咚是不是符合6和7标准的呢?
Mmm,在flash2004帮助文档里搜索
New and changed ActionScript language elements
里面对as的修改有详细的讲解
另外,帮助里面每个地方都有该特性的版本号,可以知道哪些是仅仅flashplayer7特有的。 无论如何,测试是最说明问题的,同时使用flashPlayer7 和flashPlayer6测试你的 swf文件吧。两个播放器分别在MX 和2004的安装目录 players 子目录下。
如何在内部监测版本?
System.capabilities.version
会返回一个字符串,比如:
"win 7,0,14,0" 或者 "win 6,0,32,0"
假如用户是window操作系统,我们可以使用下面的语句得到主版本号:
var version = System.capabilities.version.slice(4,5);
if(version == 6) trace( "FlashMX" );
if(version == 7) trace( "Flash2004");
这里用到函数String.slice( from,to) ,他的作用返回string 从from到to之间(不包括to)的字符。比如 "012345".slice(3,5) 返回"34" 我们可以在你的flash初始化的时候检查版本,并且根据不同的版本绑定不同的函数。
比如,2004里面有一个新系统函数 MovieClip.getNextHighestDepth(),他的作用是得到某一个mc的最高的未使用深度。我们往往用这个函数动态加载mc。但是,使用了这个函数意味着不兼容flash6。
那么如何同时在mx 和2004中使用呢? 如果发现用户用的是flashplayer6,我们就自己添加一个getNextHighestDepth函数。 //-----------------------------------------------------------------------
var version = System.capabilities.version.slice(4,5);
if(version == 6) {
MovieClip.prototype.depthNow=1000; //避免一般冲突
MovieClip.prototype.getNextHighestDepth = function(){
return this.depthNow++;
}
}
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。