完全友好的flash载入前的操作还真多。。
cookbook 第三章
flash.system.Capabilities
检测播放器版本
检测操作系统
检测播放器类型
检测显示设置
缩放影片
改变对齐方式
---其余---
隐藏Flash播放器的菜单项
检测设备音频
检测设备视频
提示用户改变播放器设置
处理系统安全
------
检测播放器版本
1、第一种方法使用JavaScript 或VBScript 检测Flash 播放器版本。但是很多脚本在不同的平台不
同的浏览器上会有兼容性问题出现。
2、服务端检测也有局限性,如果你无权限创建服务端脚本,这就很困难了。
3、大多基于ActionScript 的检测技术不能在ActionScript 3.0 上用了。ActionScript 3.0 有一套自己
的检测客户端版本的方法,那就是flash.system.Capabilities.version 属性。但是它不能检测Flash
Player 8.5 之前的版本。
还好Adobe 已经考虑到所有这些问题,推出了Flash Player Detection Kit 来指导你用最好的办
法检测播放器版本。
检测包里包含文档和各种解决办法,包括VBScript 和JavaScript 例子;ActionScript 检测;还
有服务端的ColdFusion 和PHP 脚本检测。
基于ActionScript 的检测是比较好的,它可以支持到Flash播放器4,它使用一个Flash 4 .swf t来
检测当前版本,你所要做的就是在脚本里设置最小的版本变量,如果当前版本高,它会调用指
定的内容。
--------------------
检测操作系统
使用flash.system.Capabilities.os 属性
下面的代码展示检测操作系统:
var os:String = System.capabilities.os.substr(0, 3);
if (os == "Win") {
// Windows-specific code goes here
} else if (os == "Mac") {
// Mac-specific code goes here
} else {
// Must be Unix or Linux
}
-------
检测播放器类型
使用flash.system.Capabilities.playerType 属性.
播放器的类型有:
浏览器插件形式存在于Mozilla 或Firefox
ActiveX 控件形式存在于Internet Explorer
独立播放器
外部播放器,它与Flash IDE进行交互。
这些都是.swf 运行的环境,如果你要使用脚本进行交互,这就需要知道应用程序到底在Internet
Explorer 或其他的浏览器运行。如果在独立播放器里运行,那么JavaScript等脚本就不管用了。
检测播放器类型,察看flash.system.Capabilities.playerType 的值。它可能是PlugIn, ActiveX,
StandAlone, 和External:
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
}
----------------
检测系统语言
// Example output: en-US
trace(flash.system.Capabilities.language);
var greetings:Array = new Array( );
greetings["en"] = "Hello";
greetings["es"] = "Hola";
greetings["fr"] = "Bonjour";
var lang:String = flash.system.Capabilities.language.substr(0, 2);
if (greetings[lang] == undefined) {
lang = "en";
}
trace(greetings[lang]);
如果要创建国际化的Flash,可以把文本保存在数组里,根据语言动态显示,或者直接做成多个
Flash版本(每个语言一个),如myMovie_en.swf, myMovie_es.swf, myMovie_fr.swf, 等.
//从capabilities 对象上得到语言值
var lang:String = System.capabilities.language.substr(0, 2);
// 创建支持语言数组
var supportedLanguages:Array = ["en", "es", "fr"];
// 设置默认语言.
var useLang:String = "en";
//循环匹配,如果找到,设置useLang
for (var i:int = 0; i < supportedLanguages.length; i++) {
常青翻译!
http://blog.csdn.net/lixinye0123
if (supportedLanguages[i] == lang) {
useLang = lang;
break;
}
}
// 载入对应Flash
var movieURL:String = "myMovie_" + useLang + ".swf");
--------------
检测显示设置
screenResolutionX 和screenResolutionY 属性返回桌面的显示分辨率:
trace(flash.system.Capabilities.screenResolutionX);
trace(flash.system.Capabilities.screenResolutionY);
有了这些值,你可以决定怎样显示flash影片。这一点对于Flash播放器也是很重要的,例如,手
机屏幕和电脑屏幕尺寸是不同的,因此你要根据情况载入不同的尺寸的内容。
var resX:int = flash.system.Capabilities.screenResolutionX;
var resY:int = flash.system.Capabilities.screenResolutionY;
if ( (resX <= 240) && (resY <= 320) ) {
var url:String = "main_pocketPC.swf";
}
else {
var url:String = "main_desktop.swf";
}
loader.load(new URLRequest(url));
利用分辨率还可以居中你的弹出窗口:
var resX:int = flash.system.Capabilities.screenResolutionX;
var resY:int = flash.system.Capabilities.screenResolutionY;
//设置窗口的宽和高
var winW:int = 200;
var winH:int = 200;
// 设置窗口起始坐标
var winX:int = (resX / 2) - (winW / 2);
var winY:int = (resY / 2) - (winH / 2);
// 创建代码,然后传递给URLLoader.load( )
// 打开新浏览器窗口
var jsCode:String = "javascript:void(
newWin=window.open('http://www.person13.com/'," +
"'newWindow', 'width=" + winW +
", height=" + winH + "," +
"left=" + winX + ",top=" + winY + "'));";
// 使用URLLoader 对象调用JavaScript 函数
urlLoader.load(new URLRequest(jsCode));
另外,得到屏幕分辨率可以确定是否缩放Flash 影片。例如,用户把屏幕分辨率调高了,这时
字体就变得小了。
------------
缩放影片
stage.scaleMode = StageScaleMode.SHOW_ALL; ---默认
noBorder 模式在保持原始比例下进行缩放以适应播放器,但是,如果播放器和影片比例不匹配,
影片显示不下的会被剪切掉,使用下面的语句设置:
stage.scaleMode = StageScaleMode.NO_BORDER;
exactFit 模式缩放影片适应播放器,它改变了电影原始比例,如果必要,它会匹配播放器,这
样电影总是填充整个播放器,但是这样电影中的元素可能会扭曲,代码如下:
stage.scaleMode = StageScaleMode.EXACT_FIT;
noScale 模式即不进行缩放,保持原始比例。使用该模式不要忘了设置对齐方式
stage.scaleMode = StageScaleMode.NO_SCALE;
scaleMode 属性值并不影响右键菜单里功能,不过你可以禁用菜单里的缩放功能
--------
改变对齐方式
使用stage.align 属性
默认下Flash 电影会居中显示。可以利用任何可视化对象的stage.align 属性来重新设置电影的对
齐方式。flash.display.StageAlign 类的属性:
这里没有水平和垂直都居中的模式,其实,默认模式就是它了,但如果你改变了对其方式又想
回到默认模式这时后只能传递空字符串""。
package {
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
public class ExampleApplication extends Sprite {
public function ExampleApplication( ) {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_RIGHT;
graphics.beginFill(0xff0000);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
graphics.endFill( );
}
}
}
分享到:
相关推荐
标题"air运行环境,air桌面运行环境"指的是Adobe AIR的桌面版本,它为用户提供了在Windows、Mac OS X等操作系统上运行基于Adobe AIR技术开发的应用程序的能力。这些应用程序通常拥有与原生桌面应用类似的交互体验,...
- Flash Player:运行Flash内容的浏览器插件,为游戏提供运行环境。 3. **经典游戏类型**: - 街机风格:如"arkanoid"或"breakout"类,玩家通过操作挡板反射球来消除砖块。 - 战略游戏:如"tower defense",玩家...
可以使用JavaScript检测Flash Player的版本。 5. **考虑HTML5替代方案**: 考虑使用HTML5的`<video>`标签,结合WebM、MP4等多格式视频,以确保在不支持Flash的设备上也能播放。 6. **优化性能**: 对于大型的...
- 碰撞检测的性能:对于大量动态对象的环境,需要考虑优化碰撞检测,避免过多的计算导致性能下降。 - 精确度与效率的平衡:根据应用场景选择合适的碰撞检测方法,既要确保检测的准确性,也要兼顾运行效率。 7. **...
3. 多平台兼容:考虑到不同设备和浏览器的差异,开发过程中需关注SWF文件的跨平台兼容性,确保游戏在各种环境下都能正常运行。 总结,Flash中国象棋游戏是Flash技术和ActionScript编程的完美结合,通过理解其背后的...
在本案例中,我们关注的是一个基于ASP(Active Server Pages)技术构建的能耗监测系统,其界面采用了Flash进行设计,而服务器环境则是IIS(Internet Information Services)。 ASP是一种微软开发的服务器端脚本语言...
而"工具"可能是指用于检测、安装或管理Flash Player的实用程序。 在提供的压缩包文件 "flashplayer10_2_p3_64bit_activex_111710.exe" 中,我们可以看到这是一款ActiveX版本的Flash Player,适用于使用Internet ...
在现代的Web开发中,检测用户设备的能力至关重要,特别是当涉及到特定功能的兼容性时,如Flash支持。本文主要探讨如何检测用户是否使用的是支持Flash的浏览器,这在某些仍依赖Flash技术的网站或应用中尤为关键。我们...
"checkflash"是一款官方推出的实用工具,专为检测U盘的读取、写入速度以及检查U盘的FLASH芯片是否存在物理损坏而设计。本文将详细解析该工具的使用方法及背后的原理。 首先,让我们了解"checkflash"的主要功能。...
8. **性能优化**:考虑到Flash的加载速度和资源占用,设计师需要合理管理图片大小和数量,以及优化动画效果,确保在不同网络环境下都能流畅运行。 9. **响应式设计**:现代网页设计趋势强调响应式布局,一个优秀的...
4. 使用JavaScript检测Flash支持:为了提供更好的用户体验,可以使用JavaScript检测用户浏览器是否支持Flash。如果用户没有安装Flash Player,可以提示他们安装或显示HTML5的备选内容。 然而,由于安全性和性能问题...
在RL78单片机的典型应用中,例如智能仪表、能源监测设备或家用电器,数据flash常用于存储用户的设置参数、测量历史数据或者系统状态信息。通过IAR工具,开发者能够轻松地实现这些功能,并确保数据在设备整个生命周期...
同时,可以利用坏块管理,检测和隔离已经损坏或接近寿命终点的Flash块,确保数据的完整性。 库文件(Libraries)在优化过程中也扮演着重要角色。例如,可以使用特定的库函数来管理Flash,这些函数通常包含安全的擦...
这款工具能够检测和修复Flash Player的安装问题,包括但不限于插件的缺失、损坏或版本过旧。当用户发现浏览器中的Flash内容无法正常加载或播放时,可以借助FlashRepairTool进行修复。它会扫描系统,找出与Flash ...
8. **错误检测与校验**:Flash存储器通常会有ECC(Error Correction Code)或CRC(Cyclic Redundancy Check)机制,用于检测并纠正数据传输中的错误。 9. **编程与擦除时间**:Flash的编程和擦除速度相比RAM慢很多...
最后,强调游戏使用AS3.0(ActionScript 3.0)编程语言,这是Flash平台的一个重要更新,提供了更高效和现代的编程环境。 【描述解析】 描述部分提到"一个对对碰小游戏,给客户做的!收费50元!源代码分享给大家!" ...
2. 启动FlashBoot:打开FlashBoot 2.3a程序,软件会自动检测到已连接的USB设备。 3. 选择映像:在程序界面中,选择你要写入USB的系统镜像文件(如ISO、IMG等格式)。可以导入本地存储的系统安装盘映像,也可以从...
本文将深入探讨FlashDevelop的相关知识点,这是一个免费且开源的集成开发环境(IDE),专门针对ActionScript 3(AS3)和Flex应用程序的开发。它以其高效、轻量级和自定义性而受到许多开发者的喜爱。 **1. Flash...
1. **SWFObject**:一种常用的嵌入Flash的方法,通过JavaScript库SWFObject来检测用户浏览器是否支持Flash,并插入相应的Flash内容。ASP页面可以通过JavaScript与SWFObject进行交互,进而控制Flash对象。 2. **...