




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第24章Flashyer的客户端系Flash应用程序的分发范围都比较广泛,它们往往需要在配置差异很大的计算机屏幕的分辨率、当前计算机安装的器版本等。ActionScript3.0为这些客户端信息的判Systemflash.system包中,SystemActionScript编程提供与系统相关使用System类时不允许使用创建System类的实例,否则程序将抛出运行时异常。SystemuseCodePageActionScript与外部交互的编码类型。默认情况下,SystemuseCodePagefalse。这时,ActionScript与外部文件交互时使用Unicode编码解释外部文件。但是某些与ActionScript交互的外部文件并不是使用UnicodeActionScript在显示这些文件内容时出现乱码,中文字符、ActionScript在与外部文件交互时使用与本地计算机语言相一致的编码,这时需要设置System类的useCodePage属性值为true。代码如下: SystemuseCodePagetrueActionScript与外部文件混杂多种字符体系且不兼容时就会出现字符乱码。所以,外部文件的编码应尽量使用Unicode进行编码。System类的totalMemory属性指示了当前器所占用的内存数量。System类varkb:uint=byte/1024;var
Systemgc()FlashyerSystemgc()方法只能用于调试版本的Flashyer,它对于正式版本的Flashyer并不起作用。代码如下:以上代码在调试版本的 System类对于器控制包括退出器、停止运行、继续运行3个操作。退出器比较常用的是使用mand()命令,使用System类的exit()方法同样可以关闭器。Systemexit()uint类型的参数,该参数被传递给操作系统。通常,如 器 System类的pause()方法用于停止除了传送Socket以外的Flashyer的一切操作。resume()则用于恢复停止运行的Flashyer。这里的暂停操作有别于MovieClip对象的stop()方法,stop()方法仅仅停止时间轴,而System类的pause()方法则是暂停器运行。剪贴板也可以认为是Flashyer与外部程序进行通信的一个途径。但是ActionScript仅允许设置剪贴板内容却不允许剪贴板中的内容,其目的完全处于安全考虑。因为系统剪贴板中往往会存放着一些用户的私人数据,如邮箱账号、各种系统的账号和等。设置系统剪贴板内容使用System类的setClipboard()方法,代码如下:事本程序,执行粘贴命令,可以在记事本中粘贴有ActionScript设置的剪贴板内容。新建FlexActionScript项目。在FlexBuilder3中选择File|New|ActionScriptProject命令,打开NewActionScriptProject框。在ProjectName文本框中输入项目名称为SystemDemo,单击Finish按钮完成新建。FlexBuilder3同时创建了SystemDemo.as SystemDemo.as文件编写代码,如下所示{importctrls.TextButton;importctrls.TextInput;importflash.dis importflash.events.Event;importflash.events.MouseEvent;importflash.system.System;public {privatevarinfoText:TextInput;publicfunction SystemDemo(){varexitBtn:TextButton=newTextButton("关闭 器");vargcBtn:TextButton=newTextButton("内存清理");vargcaBtn:TextButton=newTextButton("消耗内存");varinfoBtn:TextButton=newTextButton("显示信息"); SystemDemo.as文件编写代码,如下所示{importctrls.TextButton;importctrls.TextInput;importflash.dis importflash.events.Event;importflash.events.MouseEvent;importflash.system.System;public {privatevarinfoText:TextInput;publicfunction SystemDemo(){varexitBtn:TextButton=newTextButton("关闭 器");vargcBtn:TextButton=newTextButton("内存清理");vargcaBtn:TextButton=newTextButton("消耗内存");varinfoBtn:TextButton=newTextButton("显示信息");varsetcbBtn:TextButton=newTextButton("设置剪贴板");varpauseBtn:TextButton=newTextButton("暂停");infoText=newTextInput("",350,200); this.addEventListener(Event.ENTERFRAME,onEnterFrame);} privatefunction{varbtn:TextButton=e.targetasTextButton;{}} 检 privatefunction{}privatefunction{}privatefunction{varvart:int=Math.random()* for(vari:Number=0;i<=t;i++){}}privatefunction{ SystemDemo命令或直接按下F11快捷键varkb:uint=byte/1024;var}privatefunction{{}{}} privatefunction{}}}24.124.1System对于主流的屏幕分辨率可能需要开发多个版本。针对不同的Flashyer器版本可能也地机器以及器的相关信息。使用CapabilitiesCapabilities类包含了许多属性用于指示本地机器,或本地的Flashyer器所具有的特性。这些特性包括操作系统和语言信息、输入法编辑器(IME)相关信息、器版本信息、本地机器的屏幕分辨率信息以及多支持能力等。Capabilities类包含的指示性属性如表24.1所示。24.1Capabilities yer器版屏幕像素比 Capabilities类还包含了另外一个特殊的属性,该属性用于向服务器传递本地机器或本trace(Capabilities.serverString);//输出可以用于发送到服务器的URL编 Capabilities类的serverString属性值直接以名值对的形式出现,可以直接转换为 以上代码把Capabilities类的serverString属性值转换为URLVariables对象。在avHardwareDisable属性、变量名MP3hasMP3属性等,具体对应关系请参看ActionScript帮助文件。TextButton、Label、Bar、TextInputBarEvent等自定义控件,新建FlexActionScript项目。在FlexBuilder3中选择File|New|ActionScriptProject命令,打开NewActionScriptProject框。在ProjectName文本框中输入项目名称为CapabilitiesDemo,单击Finish按钮完成新建。FlexBuilder3同时创建了UIFlexNavgatorCapabilitiesDemo项目名称上右击,在弹输入ctrlsFinish按钮新建一个ctrlsTextButton.asLabel.asBar.asTextInput.as以及BarEvent.as到ctrls下,使TextButton、Label、Bar、TextInput以及BarEvent类定义在ctrls包内。CapabilitiesDemo.asFlexNavgatorCapabilitiesDemo项目下的CapabilitiesDemo.as文件,打开CapabilitiesDemo.as文件,编写代码如下:{importctrls.TextInput;importflash.dis .URLVariables;publicclassCapabilitiesDemoextends{publicfunction{varinfo:TextInput=new info.appendText("是否支持FMS屏幕扩展程序:"+Capabilities.has }}}CapabilitiesDemo类,并在构造函数中创建用于显示本地机器信息的Run|DebugCapabilitiesDemoF11快捷键启动调试,程序执行结果如图24.2所示。24.2ActionScript3.0提供对输入法编辑器的简单的控制。这些控制包括启用或禁用输入法ActionScript3.0的相关接口获取制。ActionScript3.0IME类来控制输入法编辑器,另外,CapabilitieshasIME属性辑器的前提下进行的。在Windows操作系统中输入法编辑器位于屏幕右下方,如图24.324.3ActionScript控制输入法编辑器之前,首先需要判断本地机器的输入法编辑器 }{}IMEIME类控制的包括开启和关闭输入法编辑器、输入法模式切换以及内码转换与选择等。IMEenabled属性用于查看和控制输入法编辑器 true。如果此时设置IMEenabledfalseABC输入法将被关闭。种模式被定义为IMEConversionMode类的静态常量,如表24.2所示。24.2 IMEconversionMode24.2中的其中一IMEconversionMode属性需要进行正确设置,否则程序将抛出运IMEconversionMode属性为全角模式或半角模式。如果输入法编辑器处于 图24.4半角模 图24.5全角模IME类通过调用positionString()方法把输入码转为字符。通常在文词组“こんばんは”是晚上好的意思,它的输入码是konnbannha。个字符或词组。在使用输入法输入时通常需要用户按下数字键进行选择。IME类的次doConversion()方法,则使输入法编辑器选中第二个对应字符和词组。当输入完成后,Flashyer调度IME实例的输入完成position。系统IME实例通过System类的ime静态属性获取。代码如下:public SystemimeIME实例,并为其添加输入法编辑器的输入完成。该的对象类型为IMEEvent类型,该类型实例的text属性包含了使通过测试发现IME类 positionString()方法、doConversion()方法position,对于中文输入法支持并不全面,而对于日文输入法则支持较好。使的positionString()方法、doConversion()方法以及position的使用请见稍IME类、CapabilitiesSystem类实现对操作系统输入法编辑器的简单TextButton、Label、Bar、TextInputBarEvent新建FlexActionScript项目。在FlexBuilder3中选择File|New|ActionScriptProject命令,打开NewActionScriptProject框。在ProjectName文本框中输入项目IMEDemoFinish按钮完成新建。FlexBuilder3IMEDemo.as文添加UI组件。在FlexNavgator视图的IMEDemo项目名称上右击,在弹出的快单击Finish按钮新建一个ctrls 。将TextButton.as、Label.as、Bar.as、TextInput.as以及BarEvent.as到ctrls 下,使TextButton、Label、Bar、TextInput及BarEvent类定义在ctrls包内。{importctrls.TextButton;importctrls.TextInput;importflash.dis importflash.events.FocusEvent;importflash.events.IMEEvent;importflash.events.MouseEvent;importflash.system.IME;importpublicclassIMEDemoextends{privatevarImeModes:Array;publicfunctionIMEDemo(){ varimeText:TextInput=newTextInput(""+IME.enabled,200);varbtn:TextButton;varforeach(varobj:Objectin{if(prevBtn==null)btn.x=10;{}}vardeImeBtn:TextButton=newTextButton("禁用/IME");deImeBtn.agToUp(ImeModes[0].btnasTextButton);variABCBtn:TextButton=newTextButton("输入转换");var }以上代码定义IMEDemo类的相关属性以及构造函数,其中ImeModes用于 法模式信息。该属性数据在ImeModes类的构造函数中被初始化。publicfunction{} privatefunction{{ }{}}privatefunction{}privatefunction{varbtn:TextButton=e.targetasTextButton;{}{}}private{}privatefunction{{{}}{}}}}程序界面如图24.6所示。24.6在早期的ActionScript中,mand()函数不仅可以执行Flashyer相关命令,也调用网页中的JavaScript以及FlashyerActiveX控件所在的宿主程序。应该说在ActionScript3.0中 使 mand()函数被直接定义在flash.system包下。通过该函数可以实现关闭Flashyer、控制Flash yer右键菜单、Flash yer快捷键、全屏控制以及调用外部程 mand()函数带两个参数,第一个参数用于指示该函数调用令名称, 以上代码调用mand()Flashyerfullscreen了命令的名称,第二个参数true了fullscreen命令所使用的参数。mand()函数与Flashyer交互令如表24.3所示。表 无退出全屏命令该命令用于Flash 符串true时,Flash 当然,器全屏模式也可以通过指定stage对象的disyState属性为StageDisyState.FULL_SCREEN来完成。如果器嵌入在网页中,则还需要执行标记属性allowfullscreen为true。退出命令该命令用于退出当前Flashyer,quit命令不需要指定任何参数。另外缩放控制命令该命令用于指示Flashyer,SWF表示是否需要适合的器大小。如果调用该命令时指定其参数为true,SWF将被强制缩放到器大小。如果调用该命令时指定参数为false,则SWF文件始终按照原始大小进行。右键菜单命令false,那么Flashyer右键菜单仅显示“关于Flashyer”和“设置”两项,而其他的菜单项将被隐藏。更细致的Flashyer右键菜单控制可以通过Context类实现。按键控制命令该命令用于启用或禁用Flashyer的一些按键,尤其是Flashyer的一些快捷键。使用独立的FlashyerSWF时,热键Ctrl+F会使器再切换到全屏模式。但是在有些Flash游戏中,热键Ctrl+F可能会被用做游戏本身的热键。这样Flashyer本身的热键和Flash游戏的热键就产生了。为了避免这种可以调用mand()函数,并执行trapallkeys命令同时传递参数true。运行命令同一的名为mand的中。另外Flash文件必须是一个可执行文件。通过Flashyer可以创建一个扩展名为.exe的Flash程序。单击保存按钮。只有运行可执行的Flash文件时,被放在 当然, mand()函数还可以用于与JavaScript以及宿主程序之间的通信,但是mand()命令的这种功能在ActionScript3.0中已经被淡化。使用ExternalInterface类与JavaScript以及宿主程序沟通将更加高效、更加方便。本书不再对 mand()函数与JavaScript以及宿主程序之间的通信功能做详细介绍,有的读者可以查看ActionScript3.0本例通过mad()函数在独立的Flashyer上实现全屏切换、退出器、TextButton、Label、Bar、TextInputBarEvent等自定义控件,本节将不再给出具体代FlexActionScriptFlexBuilder3File|New|ActionScriptProject命令,打开NewActionScriptProject框。在ProjectName文本框中输入项目名称为FsCmdForyer,单击Finish按钮完成新建。FlexBuilder3同时创建了FsCmdForyer.as文件。 yer.as文件。双击FlexNavgator视图中IMEDemo项目下 {importctrls.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地方政府与电力公司新能源充电桩共建合作框架协议
- Brand KPIs for sauces condiments in Brazil-外文版培训课件(2025.2)
- 路政联合执法协议书
- 黄石食堂承包协议书
- 仓库登高梯租用协议书
- 资产整体转让协议书
- 公司建合同框架协议书
- 餐饮法人变更协议书
- 解除劳务外包协议书
- 食堂污水清掏协议书
- 小学新课标《义务教育数学课程标准(2022年版)》新修订解读课件
- 七年级下学期语文5月月考试卷
- 2024年乐山市市级事业单位选调工作人员真题
- 社区卫生服务与试题及答案
- 补单合同范本10篇
- 心血管-肾脏-代谢综合征患者的综合管理中国专家共识2025解读-2
- 护工技能大赛试题及答案
- 机械制造自动化技术工业机器人
- 湖南省2024年对口升学考试计算机综合真题试卷
- 江苏省南京市(2024年-2025年小学六年级语文)统编版期末考试(下学期)试卷及答案
- 中医适宜技术-中药热奄包
评论
0/150
提交评论