`
wuzijingaip
  • 浏览: 329961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多
完全友好的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桌面运行环境

    标题"air运行环境,air桌面运行环境"指的是Adobe AIR的桌面版本,它为用户提供了在Windows、Mac OS X等操作系统上运行基于Adobe AIR技术开发的应用程序的能力。这些应用程序通常拥有与原生桌面应用类似的交互体验,...

    flash-game.zip_flash game库_flash 游戏_flash游戏_game

    - Flash Player:运行Flash内容的浏览器插件,为游戏提供运行环境。 3. **经典游戏类型**: - 街机风格:如"arkanoid"或"breakout"类,玩家通过操作挡板反射球来消除砖块。 - 战略游戏:如"tower defense",玩家...

    网页里加载flash

    可以使用JavaScript检测Flash Player的版本。 5. **考虑HTML5替代方案**: 考虑使用HTML5的`&lt;video&gt;`标签,结合WebM、MP4等多格式视频,以确保在不支持Flash的设备上也能播放。 6. **优化性能**: 对于大型的...

    flash里的碰撞检测

    - 碰撞检测的性能:对于大量动态对象的环境,需要考虑优化碰撞检测,避免过多的计算导致性能下降。 - 精确度与效率的平衡:根据应用场景选择合适的碰撞检测方法,既要确保检测的准确性,也要兼顾运行效率。 7. **...

    flash中国象棋游戏

    3. 多平台兼容:考虑到不同设备和浏览器的差异,开发过程中需关注SWF文件的跨平台兼容性,确保游戏在各种环境下都能正常运行。 总结,Flash中国象棋游戏是Flash技术和ActionScript编程的完美结合,通过理解其背后的...

    能耗监测供暖系统flash asp

    在本案例中,我们关注的是一个基于ASP(Active Server Pages)技术构建的能耗监测系统,其界面采用了Flash进行设计,而服务器环境则是IIS(Internet Information Services)。 ASP是一种微软开发的服务器端脚本语言...

    64位浏览器的flash插件下载(flashplayer for 64-bit browser)

    而"工具"可能是指用于检测、安装或管理Flash Player的实用程序。 在提供的压缩包文件 "flashplayer10_2_p3_64bit_activex_111710.exe" 中,我们可以看到这是一款ActiveX版本的Flash Player,适用于使用Internet ...

    检测是浏览器还是手机,需求为是否支持FLASH,此文为检测是否支持FLASH的代码(含demo下载)

    在现代的Web开发中,检测用户设备的能力至关重要,特别是当涉及到特定功能的兼容性时,如Flash支持。本文主要探讨如何检测用户是否使用的是支持Flash的浏览器,这在某些仍依赖Flash技术的网站或应用中尤为关键。我们...

    checkflash-官方版

    "checkflash"是一款官方推出的实用工具,专为检测U盘的读取、写入速度以及检查U盘的FLASH芯片是否存在物理损坏而设计。本文将详细解析该工具的使用方法及背后的原理。 首先,让我们了解"checkflash"的主要功能。...

    Flash相册,漂亮的Flash相册

    8. **性能优化**:考虑到Flash的加载速度和资源占用,设计师需要合理管理图片大小和数量,以及优化动画效果,确保在不同网络环境下都能流畅运行。 9. **响应式设计**:现代网页设计趋势强调响应式布局,一个优秀的...

    前端网页播放flash文件(DEMO)

    4. 使用JavaScript检测Flash支持:为了提供更好的用户体验,可以使用JavaScript检测用户浏览器是否支持Flash。如果用户没有安装Flash Player,可以提示他们安装或显示HTML5的备选内容。 然而,由于安全性和性能问题...

    dataflash.zip_iar rl78 flash_存储 单片机_瑞萨Dataflash_瑞萨flash_瑞萨单片机

    在RL78单片机的典型应用中,例如智能仪表、能源监测设备或家用电器,数据flash常用于存储用户的设置参数、测量历史数据或者系统状态信息。通过IAR工具,开发者能够轻松地实现这些功能,并确保数据在设备整个生命周期...

    基于STM32F103实现对Flash擦除次数的优化,增加Flash的使用寿命

    同时,可以利用坏块管理,检测和隔离已经损坏或接近寿命终点的Flash块,确保数据的完整性。 库文件(Libraries)在优化过程中也扮演着重要角色。例如,可以使用特定的库函数来管理Flash,这些函数通常包含安全的擦...

    FlashRepairTool_flashrepairtool_修复flashplayer_

    这款工具能够检测和修复Flash Player的安装问题,包括但不限于插件的缺失、损坏或版本过旧。当用户发现浏览器中的Flash内容无法正常加载或播放时,可以借助FlashRepairTool进行修复。它会扫描系统,找出与Flash ...

    51单片机读写flash

    8. **错误检测与校验**:Flash存储器通常会有ECC(Error Correction Code)或CRC(Cyclic Redundancy Check)机制,用于检测并纠正数据传输中的错误。 9. **编程与擦除时间**:Flash的编程和擦除速度相比RAM慢很多...

    50元 flash 小游戏 源代码 可运行 as3.0 (对对碰)

    最后,强调游戏使用AS3.0(ActionScript 3.0)编程语言,这是Flash平台的一个重要更新,提供了更高效和现代的编程环境。 【描述解析】 描述部分提到"一个对对碰小游戏,给客户做的!收费50元!源代码分享给大家!" ...

    flashboot-2.3a-setup.zip

    2. 启动FlashBoot:打开FlashBoot 2.3a程序,软件会自动检测到已连接的USB设备。 3. 选择映像:在程序界面中,选择你要写入USB的系统镜像文件(如ISO、IMG等格式)。可以导入本地存储的系统安装盘映像,也可以从...

    FlashDevelop资料集合

    本文将深入探讨FlashDevelop的相关知识点,这是一个免费且开源的集成开发环境(IDE),专门针对ActionScript 3(AS3)和Flex应用程序的开发。它以其高效、轻量级和自定义性而受到许多开发者的喜爱。 **1. Flash...

    asp flash的教程3

    1. **SWFObject**:一种常用的嵌入Flash的方法,通过JavaScript库SWFObject来检测用户浏览器是否支持Flash,并插入相应的Flash内容。ASP页面可以通过JavaScript与SWFObject进行交互,进而控制Flash对象。 2. **...

Global site tag (gtag.js) - Google Analytics