as3——检测系统语言,检测播放器的类型,检测版本
来源:互联网 发布:中国长征火箭 vi 知乎 编辑:程序博客网 时间:2024/05/21 18:48
用flash.system.Capabilities.language 属性和flash.system.IME 类可以知道显示影片的电脑使用的语言和用户将要输入的文本。
使用 flash.system.Capabilities.language属性可以测定电脑系统的语言。该属性返回一个两个字母的ISO-639-1的语言代码(如"fr"代表法语)。有的地方可能需要附加两个区域字母并用“-”号分开(例如,“zh-CN”代表“中文简体”而“zh-TW”代表中文繁体)。
对于语言代码一览表可以看http://lcweb.loc.gov/standards/iso639-2/englangn.html 和 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
利用这一属性可以动态的载入适合语言的内容:
// Create an associative array with language codes for the keys
// and greetings for the values.
var greetings:Array = new Array( );
greetings["en"] = "Hello";
greetings["es"] = "Hola";
greetings["fr"] = "Bonjour";
// Extract the first two characters from the language code.
var lang:String = flash.system.Capabilities.language.substr(0, 2);
// Use a default language if the language is not in the list
if (greetings[lang] == undefined) {
lang = "en";
}
// Display the greeting in the appropriate language.
trace(greetings[lang]);
当要在影片中提供多种语言时,可以选择不同的方法。
第一种方法,像前面的代码那样为所有影片中出现的文本创建相关的数组。另一种方法是在多个影片中创建固定的内容(每种语言创建一种)并且根据语言代码载入影片。利用这种技术,每个swf文件名应包含语言代码,例如myMovie_en.swf, myMovie_es.swf, myMovie_fr.swf等等。
// Get the language from the capabilities object.
var lang:String = System.capabilities.language.substr(0, 2);
// Create an array of the languages you are supporting (i.e.,
// the languages for which you have created movies).
var supportedLanguages:Array = ["en", "es", "fr"];
// Set a default language in case you don't support the user's
// language.
var useLang:String = "en";
// Loop through the supported languages to find a match to the
// user's language. If you find one, set useLang to that value
// and then exit the for statement.
for (var i:int = 0; i < supportedLanguages.length; i++) {
if (supportedLanguages[i] == lang) {
useLang = lang;
break;
}
}
// Load the corresponding movie.
var movieURL:String = "myMovie_" + useLang + ".swf");
了解用户根据自己系统怎样输入文本常常也很重要。语言可能有数以千计的情况,如汉语,日语,韩语。为了通过键盘输入这些字符,必须有一个叫做Input Method Editor(IME)的特殊程序。这通常是特殊语言操作系统的一部分。
如果发现用户的系统中有IME,检测flash.system.Capabilities.hosIME的值会返回true或false。然后用flash.system.IME类获得更多资讯和互动。flash.system.IME能够告诉你是否用户正在使用IME或直接从键盘输入文本。这个属性是可写的,因此可以利用它打开IME。在某些平台和操作系统,可以发送一个字符串到IME转换成正确的字符,而且可以接受IME输出返回到一个文本域。因为它不能使用在所有系统,所以最好先检测操作系统。
用flash.system.Capabilities.playerType属性可以得知正在运行的swf的播放器类型。
播放器的类型包括:
- 以插件的形式在网页浏览器中比如Mozilla或Firefox。
- 用在Internet Explorer中的ActiveX控件。
- 浏览器以外的独立播放器。
- 整合到Flash IDE中的外部播放器。
有些场合需要知道当前的swf运行在哪一种播放器中。例如,如果你正在做用浏览器代码(比如JavaScript, VBScript)的任何类型的集成,知道程序能否运行在Internet Explorer 浏览器或其它类型的浏览器是非常重要的,运行代码时这些浏览器可以做不同的行为。的确,重要是得知swf运行在独立播放器中,因为JavaScript等在这种情况下根本不能用。
检测播放器的类型,可以看到flash.system.Capabilities.playerType的值,PlugIn, ActiveX, StandAlone和External。在if语句中可以使用:
if(flash.system.Capabilities.playerType == "Plugin") {
// do actions for Mozilla, etc. browsers
}
else if(flash.system.Capabilities.playerType == "ActiveX") {
// do actions for IE
}
else {
// do actions for no browser
}
怎样确定用户使用的flash player的版本?
利用Flash Player Detection Kit,从Adobe的网站检查播放器的版本,如果需要,可以升级播放器(http://www.adobe.com/software/flashplayer/download/detection_kit)。
检测用户浏览器目前安装的flashplayer的版本是一个老问题了,而且已经被不同的开发者解决。通常由三种类型:
- 浏览器代码检测
- 伺服端检测
- ActionScript检测
第一种方法用JavaScript或VBScript检测用户安装的flashplayer版本。多数代码在用在不同的平台和浏览器类型时会出现错误。
假如你不懂伺服端代码,伺服端检测可能很困难的。
大部分ActionScript的版本检测技巧不能直接用在ActionScript 3.0制作的swf。ActionScript3.0有自己的方法检测player的版本,它是flash.system.Capabilities.version的属性。当然,不能用在flashplayer8.5之前的版本。
Adobe已经彻底的研究了所有这些问题,而且带来了一个 Flash Player Detection Kit引导你完成检测player版本的最好的程序。
这个Kit包括了针对不同问题和潜在的解决方案的文档,包括针对浏览器检测版本的的VBScript和JavaScript例子;针对ActionScript检测的.fla、.as、和.swf的文件;同时还有针对伺服端检测的ColdFusion和PHP的代码。
以ActionScript为基础的检测可以成功的检测flashplayer4以上的任何版本。基本上,它是一个flash4的swf执行一个代码来检测当前player的版本;你需要做的仅仅是设置一个player版本的最小要求值作为代码的一个变量。如果player的版本满足了要求,就会载入指定的内容。如果不满足,就会重新引导浏览器到一个预定内容的页面。这个页面可以包含一个低版本的swf,一个非flash的内容或者一个提示用户升级flashplayer的公告,连接到Adobe站点的player升级页面。
此外,这个Kit包含一个swf和Html用来初始化安装最新flashplayer版本的模版。如果用户的player不符合要求,浏览器会重新传入这个swf,通过它从Adobe网站上下载最新的flashplayer版本并且自动安装,最后重新返回到指定的flash,而用户不用离开你的位置。这个功能要求用户已经安装了flashplayer6.0.65.0。
使用Flash Player Detection Kit里的这组技术是你能够精确的控制flashplayer版本和你要传递给观众的内容。
为了测试,老版本的flashplayer可以从Macromedia的站点获得(http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_14266)。
- as3——检测系统语言,检测播放器的类型,检测版本
- as3的hit检测
- 检测系统版本的宏
- flash as3 巧用loader检测播放器版本,提示升级flashplayer10
- as3——检测视频,音频
- as3——影片的缩放,检测显示设置
- flex 检测系统语言
- 检测系统的IIS版本脚本
- 如何检测当前系统的 shell 版本
- 浏览器类型及版本检测
- 检测mysql的版本
- JavaScript类型的检测
- 动态类型的检测
- js的类型检测
- JavaScript 的类型检测
- javascript的类型检测
- JavaScript的类型检测
- js的类型检测
- petshop4.0 详解之一(系统架构设计)
- as3——影片的缩放,检测显示设置
- C++中的const(一)——和C中的区别
- 清除垃圾文件
- petshop4.0 详解之二(数据访问层之数据库访问设计)
- as3——检测系统语言,检测播放器的类型,检测版本
- petshop4.0 详解之三(PetShop数据访问层之消息处理)
- as3——派遣事件,创建常量
- 需求调研经验分享-2 需求调研实施及注意事项
- petshop4.0 详解之四(PetShop之ASP.NET缓存)
- 我的一个数组字符排序(输入可以用回车结束)
- 80386 控制转移指令,串操作指令 (四)
- C++字符串完全指南 - Win32字符编码
- [转]VS.NET 2008 beta2中文版试用