Flash动作脚本技术FAS程序设计项目化教程--项目七--金苑五笔打字训练系统

上传人:wj****e 文档编号:67662782 上传时间:2022-03-31 格式:DOC 页数:33 大小:177KB
返回 下载 相关 举报
Flash动作脚本技术FAS程序设计项目化教程--项目七--金苑五笔打字训练系统_第1页
第1页 / 共33页
Flash动作脚本技术FAS程序设计项目化教程--项目七--金苑五笔打字训练系统_第2页
第2页 / 共33页
Flash动作脚本技术FAS程序设计项目化教程--项目七--金苑五笔打字训练系统_第3页
第3页 / 共33页
点击查看更多>>
资源描述
项目七 金苑五笔打字训练系统7.1 项目教学目标 掌握组合下拉列表框组件、单选按钮组件、复选框组件和数字显示组件的使用。 掌握组件的监听事件的处理 掌握forin循环的使用 掌握组件焦点的控制 掌握数组的使用7.2 项目操作过程(1)第1步:启动Flash Profession 8,选择菜单“文件新建”命令,在弹出的“新建文档”窗口中,选择“常规”选项卡的“Flash文档”选项,在新建的Flash文档中,再选择菜单“文件保存”命令,在“另存为”窗口的“文件名”文本框中输入“jywb”,再单击“保存”按钮。(2)第2步:选中“舞台”,单击鼠标右键,在快捷菜单中选择“文档属性”,在“标题”文本框中输入“金苑五笔打字训练系统”,在“描述”文本框中输入“金苑五笔打字训练系统用于训练学生的五笔打字能力,以提高就业竞争力”,在“尺寸(宽)”文本框中输入“800”,在“尺寸(高)”文本框中输入“600”,设置完成后如图7-1所示。图7-1 jywb文档设置(3)第4步:双击图层面板中的“图层1”,将“图层1”更名为“背景层”。(5)第5步:选择菜单“窗口库”命令,单击选择“库”面板中图形“Background”。(6)第6步:按住鼠标左键将图形“Background”拖放至舞台中,选择图形“Background”的属性面板,在“宽”文本框中输入“800”,在“高”文本框中输入“600”,在“X”文本框中输入“0”, “Y”文本框中输入“0”。(7)第7步:单击图层面板的中的按钮,添加一个新图层,并命名为“组件层”。(8)第8步:在“背景层”第“1”帧的舞台上添加静态文本对象,静态文本对象的属性设置如表7-1所示。表7-1 文本对象属性列表文本类型文本内容XY字体字号静态文本用户信息:125175幼圆22静态文本姓名:86228楷体20静态文本班级:82267楷体20静态文本性别:82314楷体20静态文本训练设置:491175幼圆22静态文本请选择你要训练的内容:361225楷体20静态文本请选择你要挑战的级别:356340楷体20(9)第9步:选择菜单“窗口组件”命令,在“组件”窗口中用鼠标双击“User Interface”展开列表选择,按住鼠标左键将二个“TextInput”输入文本框组件放置到舞台上,属性设置如下表的7-2所示。表7-2 文本框组件属性设置组件类型组件命名XYTextInputusernametxt147228TextInputusernumbertxt 146268(10)第10步:选择菜单“窗口组件”命令,在“组件”窗口中用鼠标双击“User Interface”展开列表选择,按住鼠标左键将一个“ComboBox”组合下拉列表框组件放置到舞台上,属性设置如下表的7-3所示。ComboBox知识请阅读项目相关理论知识7.3.1。表7-3 组合下拉列表框组件属性设置组件命名XYEditableLabels userclassCombo145316false金融08(1),信息08(1),电商08(1),会计08(1),英语08(1) (11)第11步:选择菜单“窗口组件”命令,在“组件”窗口中用鼠标双击“User Interface”展开列表选择,按住鼠标左键将二个“RadioButton”单选按钮放置到舞台上,属性设置如下表的7-4所示。RadioButton知识请阅读项目相关理论知识7.3.2。表7-4 单选按钮组件属性设置组件类型组件命名XYLabelgroupNameSelectedRadioButtongenderRadioMM141358MMgendertrueRadioButtongenderRadioGG 146268GGgenderfalse(12)第12步:选择菜单“窗口组件”命令,在“组件”窗口中用鼠标双击“User Interface”展开列表选择,按住鼠标左键将六个“CheckBox”复选框组件放置到舞台上,属性设置如下表的7-5所示。CheckBox理论知识请阅读项目相关理论知识7.3.3。表7-5 复选框组件属性设置组件类型组件命名XYLabelSelectedCheckBoxtrain1CheckBox 499221一级简码trueCheckBoxTrain2CheckBox 499250二级简码falseCheckBoxtrainbjCheckBox499277百家姓falseCheckBoxtrainywxxCheckBox583221小字字母falseCheckBoxtrainywdxCheckBox583250英文大写falseCheckBoxtrainszCheckBox583277数字false(13)第13步:选择菜单“窗口组件”命令,在“组件”窗口中用鼠标双击“User Interface”展开列表选择,按住鼠标左键将一个“NumericStepper”数字步进显示组件放置到舞台上,属性设置如下表的7-6所示。NumericStepper理论知识请阅读项目相关理论知识7.3.4。表7-6 数字步进显示组件属性设置组件命名XYmaximumminimumstepSizegradeStepper488354611(14)第14步:选择菜单“窗口公用库按钮”命令,在“按钮”窗口中按住鼠标左键将一个“bar capped purple”按钮放置到舞台上,在“X”文本框中输入“347”,“Y”文本框中输入“479”。(15)第15步:用鼠标选择“第一帧”,单击鼠标右键,在快捷菜单中选择“动作”,在“动作”面板输入如下代码:/用户信息变量初始化var username:String=金院小小;var usernumber:String=6002008001var usergender:String=MM;var userclass:String=金院(1)班;var usergrade:String=菜鸟级;/训练级别变量初始化var usertrainbj:Boolean=false;var usertrainyj:Boolean=false;var usertrainej:Boolean=false;var usertrainywxx:Boolean=false;var usertrainywdx:Boolean=false;var usertrainsz:Boolean=false;/生成单击按钮对象var objRadio=new Object();/单击按钮事件点击处理objRadio.click=function(evt) usergender=evt.target.label;/为单击按钮添加监听genderRadioGG.addEventListener(click,objRadio);genderRadioMM.addEventListener(click,objRadio);/生成组合下拉列表框对象var objCombo=new Object();/组合下拉列表框变化事件处理函数objCombo.change=function(evt)userclass=evt.target.labelsevt.target.selectedIndex;/生成数字步进器对象var objStepper=new Object();/数字步进器变化事件处理函数objStepper.change=function(evt)/判断用户的选择级别switch( evt.target.value)case 1:usergrade=菜鸟级;break;case 2: usergrade=江湖级;break; case 3: usergrade=高手级;break; case 4: usergrade=大师级;break; case 5: usergrade=精灵级;break; case 6: usergrade=梦幻级;break;/为组合下拉列表框添加监听userclassCombo.addEventListener(change,objCombo);/为步进器添加监听gradeStepper.addEventListener(change,objStepper);stop();(16)第16步:用鼠标选择“bar capped purple”按钮,单击鼠标右键,在快捷菜单中选择“动作”,在“动作”面板输入如下代码:on(release)/获得用户的姓名username=usernametxt.text;/获得用户的学生usernumber=usernumbertxt.text;/获得用户的训练内容if(_root.train1CheckBox.selected)usertrainyj=true;if(_root.train2CheckBox.selected)usertrainej=true; if(_root.trainbjCheckBox.selected) usertrainbj=true;if(_root.trainywxxCheckBox.selected) usertrainywxx=true;if(_root.trainywdxCheckBox.selected) usertrainywdx=true; if(_root.trainszCheckBox.selected) usertrainsz=true; play();(17)选择菜单“控制菜单测试影片”命令,影片结果如图7-2所示。图7-2 影片首界面(18)第17步:将鼠标移动至“时间轴”面板“背景层”第2帧处,选中第“2”帧,单击鼠标右键,在快捷菜单中选择“插入空白关键帧”。(19)第18步:在“背景层”第“2”帧的舞台上添加静态文本对象,静态文本对象的属性设置如表7-7所示。表7-7 文本对象属性列表文本类型文本内容XY字体字号静态文本输入区:158526隶书16静态文本生命值:417526隶书16静态文本挑战者:0566黑体18静态文本挑战内容:334567黑体18静态文本挑战级别:631567黑体18(20)第19步:在“背景层”第“2”帧的舞台上添加动态文本对象,动态文本对象的属性设置如表7-8所示。表7-8 文本对象属性列表文本类型文本命名XY字体字号动态文本 userinformation68562隶书16动态文本 trainproject416562隶书16动态文本gradeinformation 712565隶书16(21)第20步:选择菜单“窗口库”命令,将表7-9所示影片剪辑拖放到舞台,相应的属性设置也如表7-9所示。 表7-9 影片剪辑属性列表影片剪辑实例名称XY颜色background_scenicspot-47-5Alpha:30%wbzgb-7155Alpha:21%(22)第21步:新建一个层,命名为“组件层”,选择“组件层”。(23)第22步:选择菜单“窗口公用库按钮”命令,在“按钮”窗口中按住鼠标左键将一个“rect bevel gold”按钮放置到舞台上,在“X”文本框中输入“360”,“Y”文本框中输入“313”。(24)第23步:选择菜单“窗口组件”命令,在“组件”窗口中用鼠标双击“User Interface”展开列表选择,按住鼠标左键将一个“TextInput”输入文本框组件放置到舞台上,在命名文本框中输入“inputchar”,在“X”文本框中输入“219”,“Y”文本框中输入“524”。 (25)第24步:选择菜单“窗口库”命令,将表7-10所示影片剪辑拖放到舞台,影片剪辑相应的属性设置也如表7-10所示。 表7-10 影片剪辑属性列表影片剪辑实例名称XY颜色life483523无 lifebox482523无(26)第25步:用鼠标选择“第2帧”,单击鼠标右键,在快捷菜单中选择“动作”,在“动作”面板输入如下代码:/显示用户信息userinformation.text=userclass+usernumber+username+usergender;/显示用户训练级别gradeinformation.text=usergrade;/将“重新训练”按钮为不可见_root.againButton._visible=false;stop();(27)第26步:用鼠标选择“inputchar”输入文本西框组件,单击鼠标右键,在快捷菜单中选择“动作”。在“动作”面板输入如下代码:on (change)/遍历舞台上所有影片对象for(var j in _root) /判断影片对象是否为生成的训练字符if(_rootj._name.indexOf(txt)=0) /判断用户输入与生成的训练字符是否相等 if(_rootj.text=_root.inputchar.text) /设置生成的训练字符Y坐标_rootj._y=610;/将生成的训练字符设置为空 _root.inputchar.text=; _rootj.text=; for.in(28)第27步:用鼠标选择“rect bevel gosld”按钮组件,单击鼠标右键,在快捷菜单中选择“动作”,在“动作”面板输入如下代码:on(press) gotoAndStop(1);(29)第28步:新建一个层,命名为“代码层”,选择“代码层”。(30)第29步:用鼠标选择“第2帧”,单击鼠标右键,在快捷菜单中选择“动作”,在“动作”面板输入如下代码: /输入框获得控制焦点 _root.focusManager.setFocus(inputchar);/设置变量的初始值var generation=0;var count=0;var countControl=0;var speedControl=0;var numberControl=0;var charNeed:String=;/设置所有训练的字符var charArr:Array = new Array(我人有的和主产不为这工要在地一上是中国经以发了民同,白毕卞蔡曹岑常车陈成程池邓丁范方樊费冯符傅甘高葛龚古关郭韩何贺洪侯胡华黄霍姬简江姜蒋金康孔柯赖郎乐雷黎李连廉梁廖林凌刘柳龙卢鲁陆路吕罗骆马梅孟莫母穆倪宁欧区潘彭蒲皮齐戚钱强秦丘邱饶任沈盛施石时史司徒苏孙谭汤唐陶田童涂王危韦卫魏温文翁巫邬吴伍武席夏萧谢辛邢徐许薛严颜杨叶易殷尤于余俞虞元袁岳云曾詹张章赵郑钟周邹朱褚庄卓,开屯到天表于五下不理事画现与来列珠末玫平妻珍互玉载地支城圾寺二直示进吉协南志赤过无垢霜才增雪夫坟左顾友大胡夺三丰砂百右历面成灰达克原厅帮磁肆春龙太械李权枯极村本相档查可楞机杨杰棕构析林格样要检楷术式节芭基菜革七牙东划或功贡世芝区匠苛攻燕切共药芳虎皮睚肯睦睛止步旧占卤贞卢眯瞎餐睥盯睡瞳眼具此眩虹最紧晨明时量早晃昌蝇曙遇电显晕晚蝗果昨暗归蛤昆景呀啊吧顺吸叶呈中吵虽吕另员叫噗喧史听呆呼啼哪只哟嘛轼囝轻因胃轩车四辊加男轴思辚边罗斩困力较轨办累罚曲邮凤央骨财同由峭则崭册岂赕迪风贩朵几赠内嶷凡长季么知秀行生处秒得各务向秘秋管称物条笔科委答第入找报反拓扔持后年朱提扣押抽所搂近换折打手拉扫失批扩肛服肥须朋肝且胩膛胆肿肋肌甩膦爱胸遥采用胶妥脸脂及代他公估仍会全个偿介保佃仙亿伙你伯休作们分从化信氏凶色然角针钱外乐旬名甸负包炙锭多铁钉儿匀争欠久度离充庆衣计主让就是训为高记变这义诉订放说良认率方并闻冯关前半闰站冰间部曾商决普帝交瓣亲产立妆闪北六江池汉尖肖法汪小水浊澡渐没沁淡学光泊洒少洋当兴涨注煤籽烃类粗灶业粘炒烛炽烟灿断炎迷炮煌灯烽料娄粉糨米宽字害家守定寂宵审宫军宙官灾之宛宾宁客实安空它社民敢怪居导怀收悄慢避惭届忆屡忱懈怕必习恨愉尼心陈子取承阴际卫耻孙阳职阵出也耿辽隐孤阿降联限队陛防毁好妈姑奶寻姨叟录旭如舅妯刀灵巡婚杂九嫌妇姆妨戏邓双参能对骊骒台劝观马驼允牟骠矣骈艰难驻红弛经顷级结线引纱旨强细纲纪继综约绵张弱绿给比纺,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ,0123456789);/判断用户的训练内容if(usertrainyj)charNeed=charNeed+charArr0;trainproject.text+=一级;if(usertrainbj)charNeed=charNeed+charArr1;trainproject.text+=二级;if(usertrainej)charNeed=charNeed+charArr2;trainproject.text+=百家;if(usertrainywxx)charNeed=charNeed+charArr3;trainproject.text+=小字母;if(usertrainywdx)charNeed=charNeed+charArr4;trainproject.text+=大字母;if(usertrainsz)charNeed=charNeed+charArr5;trainproject.text+=数字;/设置生成字符的格式var charFormat=new TextFormat();charFormat.color=0xffffff;charFormat.size=30;generateChar(usergrade);/生成字符函数function generateChar(_pstr:String)/判断相应的等级决定字符的生成数量与速度if(usergrade=菜鸟级) setparameter(50,1,40);else if(usergrade=江湖级) setparameter(150,2,25);else if(usergrade=高手级) setparameter(180,2,15);else if(usergrade=大师级) setparameter(200,2,15);else if(usergrade=精灵级) setparameter(240,3,10);else if(usergrade=梦幻级) setparameter(280,5,5);_root.onEnterFrame=function() _root.focusManager.setFocus(inputchar);generation+ /判断决定字符生成速度 if(generation%numberControl=0) count+;i=_root.getNextHighestDepth(); /动态生成字符root.createTextField(txt+i,i,25+730*Math.random(),0,40,40); /随机决定生成的字符pos=random(charNeed.length);_roottxt+i.text=charNeed.substring(pos,pos+1); /设置生成字符的格式_roottxt+i.setTextFormat(charFormat); /判断是否挑战成功if(count=countControl) display(恭喜,挑战成功!);for(var j in _root) if(_rootj._name.indexOf(txt)=0&_rootj.text!=) /字符匀速下降_rootj._y+=speedControl;/判断是否当前字符被用户正确输入if(_rootj._y=600&_rootj._y605) /生命值减3 _root.life._xscale-=3; /判断生命值是否为零if(_root.life._xscale=0) display(很遗憾,挑战失败!); _root.againButton._visible=true; /显示结果函数function display(pstr:String)/删除_root的onEnterFrame函数delete _root.onEnterFrame;/清除所有的字符for(var j in _root)if(_rootj._name.indexOf(txt)=0)_rootj.text=;finalresult.text=pstr;/设置字任的生成速度、下降速度和数量function setparameter(p1:Number,p2:Number,p3:Number) countControl=p1; speedControl=p2; numberControl=p3;焦点管理器(FocusManager)知识请阅读项目相关理论知识7.3.6;数组知识请阅读项目相关理论知识7.3.7;(34)选择菜单“控制菜单测试影片”命令,用户信息设置时影片结果如图7-3所示;开始训练时影片结果如图7-4所示;打字训练过程中影片的一个运行结果如图7-5所示;训练失败时影片结果如图7-6所示。图7-3 用户信息设置时影片结果图7-4 开始训练时程序运行结果图7-5 打字训练过程中程序一个运行结果图7-6 训练失败的程序运行结果7.3 项目相关理论知识7.3.1 ComboBox组件在很多应用程序中需要用户从列表中选择一项目,通常会使用ComboBox组件,即组合框组件。例如,在注册一个邮箱过程中用户可能会使用组合框选择自己的性别、出生年月和出生地址等。在项目七中的用户选择班级就是通过组合框来实现的。组合框由Button 组件、TextInput 组件和 List 组件三个子组件组成。组合框可以是静态的,也可以是可编辑的。如果组合框是可编辑的,用户可以在列表顶部的文本框中输入文本,也可以从下拉列表中选择一个项目。如果下拉列表的伸展长度超出影片文档会向上伸展,而不是向下。1.组合框参数设置用户可以通过“属性”面板或“组件”检查器(“窗口组件检查器”菜单选项)中为组合框对象设置如表7-11所示参数。表7-11 组合框组件参数参数名称说明data数组类型,设置数据值与组合框中的每一项相关联。editable布尔类型,参数true表示组合框可编辑,false表示不可编辑。默认值为false。labels文本类型,组合框中每个项目的文本标签值。rowCount数值类型,组合框列表中显示的项数的最大数。restrict对象类型,设置用户可在组合框的文本框中输入的字符集。默认值为 undefined。如:my_combo.restrict = A-Z 0-9,这句代码将文本框的输入限定为大写字母、数字和空格。enabled布尔类型,参数true表示组合框可以获得焦点和输入,false表示不用可状态。默认值为true。visible布尔类型,参数true表示组合框可见,false表示不可见。默认值为true。2组合框组侦听器事件模型在应用程序组合框的使用主要通过侦听器事件模型来实现。模型如下:var listenerObject:Object = new Object();listenerObject.EventName = function(eventObject:Object)监听处理代码;;comboBoxInstance.addEventListener(EventName, listenerObject)当ComboBox.selectedIndex或ComboBox.selectedItem属性因用户交互操作而改变时向所有已注册的侦听器广播。组合框对象侦听器事件模型中,组合框是一个广播器对象,广播一个事件(EventName,比如change,open,close事件等),用户事先要创建好的侦听器对象并为该对象定义一个广播对象上的事件同名的方法。当广播器对象(comboboxInstance)事件被侦听器对象(listenerObject)成功侦听后,它会自动将一个事件对象 (eventObject)传递到侦听器对象方法。最后,对广播该事件的组合框对象调用addEventListener(),以将侦听器对象注册到该对象。当该组合框对象调度该事件时,就会调用侦听器对象的处理函数。3.change、open和close事件(1).change事件。当用户更改ComboBox.selectedIndex或ComboBox.selectedItem 属性向所有已注册的侦听器对象广播该事件,侦听器对象调用change处理函数。(2).open事件。当用户完全展开下拉列表时,向所有已注册的侦听器广播,侦听器对象调用open处理函数。(3).close事件。当组合框的下拉列表完全回缩时,向所有已注册的侦听器广播,侦听器对象调用close处理函数。例7-1:下面是一个关于城市的组合框,当用户选择上海时分别调用三个展开、变更和回缩事件处理函数。/ 将项添加到列表。comboBox.addItem(data:1, label:北京);comboBox.addItem(data:2, label:上海);comboBox.addItem(data:2, label:杭州);/ 创建侦听器对象。var cbListener:Object = new Object();/ 为侦听器对象分配函数。cbListener.open = function(evt_obj:Object) trace(组合框已展开.);cbListener.close = function(evt_obj:Object) trace(组合框已回缩.);cbListener.change = function(event_obj:Object) trace(您选择的城市是: +event_obj.target.selectedItem.label);/ 添加侦听器。comboBox.addEventListener(open, cbListener);comboBox.addEventListener(close, cbListener);comboBox.addEventListener(change, cbListener);运行代码,当用户选择上海,输出面板如图所示。图7-7 组合框示例输出面板结果7.3.2 RadioButton组件在很多应用程序中需要用户从一组选项中做出唯一选择,可以使用单选按钮。例如,在项目要求选择自己的性别就使用了单选按钮。单选按钮组件用来强制用户选择一组选项中的唯一一个项目。一组单选按钮组件必须用于至少有两个RadioButton对象。每个组中一个单选按钮对象被选后,组中其它单选按钮将被取消选择。1.单选按钮参数设置用户可以通过“属性”面板或“组件”检查器中为单选按钮对象设置如表7-12所示参数。表7-12 组合框组件参数参数名称说明data数组类型,是与单选按钮的每一项相关联。没有默认值。groupName字符类型,单选按钮的组名称。默认值为 radioGrouplabel字符类型,设置按钮上的文本标签值。默认值为 Radio ButtonlabelPlacement字符类型,设置标签文本与按钮的相对方向。参数可以选择以下四个值之一:left、right、top 或 bottom。默认值为 right。selected布尔类型,参数值为true时,单选按钮被选中并显示一个圆点,参数值为false时,取消选中。默认值为 false。 注意:如果初始时,组内有多个单选按钮被设置为 true,则最后实例化的那个单选按钮为选中按钮。2.单选按钮在应用程序的使用单选按钮在应用程序中有两种使用模式:侦听模式和on模式。(1).单选按钮组件侦听器事件模型模型如下:var listenerObject:Object=new Object();listenerObject.click = function(eventObj:Object) 监听处理代码;;radioButtonGroup.addEventListener(click, listenerObject);单选按钮对象侦听器事件模型中,单选按钮对象(radioButtonGroupObject)是一个广播器对象,广播一个点击事件,用户事先要创建好的侦听器对象(listenerObject)并为该对象定义一个广播对象上的点击事件同名的方法。当广播器对象事件被侦听器对象成功侦听后,它会自动将一个事件对象(eventObject)传递到侦听器对象方法。最后,对广播该事件的单选按钮对象调用addEventListener(),以将侦听器对象注册到该对象。当该单选按钮对象被触发点击事件时,就会调用侦听器对象的点击处理函数。(2).on事件模型模型如下:on (click) 点击处理代码;使用on()处理函数必须直接附加到一个RadioButton对象。例7-2:下面是一个用单选按钮实现选择出发站与目地站的程序。import mx.controls.RadioButton;this.createClassObject(RadioButton, beijing_radioButton,10, label:北京, groupName:radioGroupDeparture);this.createClassObject(RadioButton, shanghai_radioButton,20, label:上海, groupName:radioGroupDeparture);this.createClassObject(RadioButton, hangzhou_radioButton,30, label:杭州, groupName:radioGroupDeparture);this.createClassObject(RadioButton, Desbeijing_radioButton,40, label:北京, groupName:radioGroupDes);this.createClassObject(RadioButton, Desshanghai_radioButton,50, label:上海, groupName:radioGroupDes);this.createClassObject(RadioButton, Deshangzhou_radioButton,60, label:杭州, groupName:radioGroupDes);/在舞台上定位单选按钮。beijing_radioButton.move(100, 80);shanghai_radioButton.move(100, 110);hangzhou_radioButton.move(100, 140);Desbeijing_radioButton.move(300,80);Desshanghai_radioButton.move(300, 110);Deshangzhou_radioButton.move(300, 140);/创建侦听器对象。var radioButtonbListener:Object = new Object(); radioButtonbListener.click = function(evt_obj:Object) trace(你选择的出发地是: + evt_obj.target.selection.label); / 创建侦听器对象。var DesradioButtonbListener:Object = new Object(); DesradioButtonbListener.click = function(evt_obj:Object) trace(你选择的目的地是: + evt_obj.target.selection.label); / 添加侦听器。radioGroupDeparture.addEventListener(click, radioButtonbListener); / 添加侦听器。radioGroupDes.addEventListener(click, DesradioButtonbListener);在库面板添加一个radioButton组件,运行影片文档后,如图所示7-8所示。输出面板结果如7-9所地示。图7-8 radioButton示例影片结果图7-9 radioButton输出面板结果7.3.3 checkBox组件当应用程序中需要用户从一组选项中做出一个或多个选择,可以使用复选按钮。例如,在项目要求用户选择训练的内容就使用了复选按钮,再比如要用户选择自己的爱好,也可以用复选按钮。复选框是一个带有文本标签的可以选中或取消选中的正方形方框。当它被选中后,框中会出现一个选中标记。在应用程序中可以根据需要启用或者禁用复选框。如果复选框已启用,当用户将鼠标指针处于复选框或者它的标签上方时,复选框会获得输入焦点并显示为按下状态。如果用户将指针移到复选框或其标签的边界区域之外,则组件的外观会返回到其最初状态。在组件上释放鼠标之前,复选框的状态不会发生变化。如果复选框被禁用,它会显示其禁用外观并且不接收鼠标或键盘输入。1.复选框参数设置用户可以通过“属性”面板或“组件”检查器中为复选框对象设置如表7-13所示参数。表7-13 复选框组件参数参数名称说明label字符类型,设置复选上的文本标签值。默认值为CheckBoxlabelPlacement字符类型,设置标签文本与复选框的相对方向。参数可以选择以下四个值之一:left、right、top或bottom。默认值为right。selected布尔类型,参数值为true时,复选框被选中并显示一个小勾,参数值为false时,取消选中。默认值为 false。2.复选框在应用程序的使用复选框在应用程序中有两种使用模式:侦听模式和on模式。(1).复选框组件侦听器事件模型模型如下:var listenerObject:Object = new Object();listenerObject.click = function(eventObject:Object) 监听处理代码;;checkBoxInstance.addEventListener(click, listenerObject);复选框对象侦听器事件模型中,复选框对象(checkBoxObject)是一个广播器对象,广播一个点击事件,用户事先要创建好的侦听器对象(listenerObject)并为该对象定义一个广播对象上的点击事件同名的方法。当广播器对象事件被侦听器对象成功侦听后,它会自动将一个事件对象(eventObject)传递到侦听器对象方法。最后,对广播该事件的复选框调用addEventListener(),以将侦听器对象注册到该对象。当该复选框对象被触发该点击事件时,就会调用侦听器对象的点击处理函数。(2).on事件模型模型如下:on (click) 点击处理代码;使用 on() 处理函数必须直接附加到一个checkBox对象。例7-3:下面是一个点菜的程序。this.createClassObject(mx.controls.CheckBox, dish1, 1, label:东坡肉, selected:false);this.createClassObject(mx.controls.CheckBox, dish2, 2, label:西湖醋鱼, selected:false);this.createClassObject(mx.controls.CheckBox, dish3, 3, label:西湖莼菜汤, selected:false);this.createClassObject(mx.controls.CheckBox, dish4, 4, label:清蒸鲻鱼, selected:false);dish1.move(100, 50);dish2.move(100, 80);dish3.move(100, 110);dish4.move(100, 140);var checkBoxListener:Object = new Object(); checkBoxListener.click = function(evt_obj:Object) orderedDish(); dish1.addEventListener(click,checkBoxListener); dish2.addEventListener(click,checkBoxListener); dish3.addEventListener(click,checkBoxListener);dish4.addEventListener(click,checkBoxListener); function orderedDish():Void var dish_str:String=;for(i=1;i=4;i+) if(eval(dish+i).selected=true) dish_str=+dish_str+eval(dish+i).label+ ; trace(您点的菜有:+dish_str);在库面板添加一个checkBox组件,运行影片文档后,当用户依次点选所有菜后,再取消“西湖莼菜汤”后,影片如图所示7-10所示。输出面板结果如7-11所示。7-10 组合框示例影片运行结果7-11 组合框示例输出结果7.3.4 NumbericStepper组件在应用程序中,需用用户逐个通过一组有序的数字时,就可以考虑使用NumericStepper组件。该组件由文本框及其中的数字和显示右调节上下箭头按钮的组成。NumericStepper 组件只处理数值数据。当用户按下按钮时,数字将根据设定好步长单位进行递增或递减,直到用户释放按钮或达到最大或最小值为止。例如:在项目七中,用户可以通过NumericStepper组件来选择训练的级别。1.步进器参数设置用户可以通过“属性”面板或“组件”检查器中为步进器对象设置如表7-14所示参数。表7-14 步进器组件参数参数名称说明maximum数值型,设置步进器中的最大值。默认值为10。minimum数值型,设置步进器中的最小值。默认值为0。stepSize数值型,设置每次单击时步进器增大或减小的步近单位。默认值为1。value数值型,设置在步进器的文本框中显示的值。默认值为 0。enabled布尔类型,参数true表示步进器可以获得焦点和输入,为false时不用可状态。默认值为true。visible布尔类型,参数为true时步进器可见,为false时不可见。默认值为true。2.步进器在应用程序的使用步进器在应用程序中有两种使用模式:侦听模式和on模式。(1).步进器组件侦听器事件模型模型如下:var listenerObject:Object = new Object();listenerObject.click = function(eventObject:Object) 监听处理代码;;numericStepperInstance.addEventListener(change, listenerObject);步进器对象侦听器事件模型中,步进器对象(numericStepperObject)是一个广播器对象,广播一个点击事件,用户事先要创建好的侦听器对象(listenerObject)并为该对象定义一个广播对象上的点击事件同名的方法。当广播器对象事件被侦听器对象成功侦听后,它会自动将一个事件对象(eventObject)传递到侦听器对象方法。最后,对广播该事件的步进器对象调用addEventListener(),以将侦听器对象注册到该对象。当该步进器对象被值被更改时,就会调用侦听器对象的处理函数。(2).on事件模型模型如下:on (change) 点击处理代码;例7-4:下面是一个模拟音量调整的程序。当用户使用步进器来调节声音大小,进度条也会随着变化。/* 要求: - 舞台上有 NumericStepper 组件(实例名称:my_nstep) - 舞台上有 ProgressBar组件(实例名称:my_pro)*/var my_nstep:mx.controls.NumericStepper;var my_pro:mx.controls.ProgressBar;my_nstep.maximum=50;my_pro.mode = manual;my_pro.label = %1 volumn of %2 setted;var increment=my_nstep.stepSize;/进度栏增加前的最小数值my_pro.minimum = my_nstep.minimum;/ 进度栏停止前的最大值my_pro.maximum = my_nstep.maximum;/ 创建侦听器对象。var nstepListener:Object = new Object();nstepListener.change = function(evt_obj:Object) increment=my_nstep.value; my_pro.setProgress(increment, my_pro.maximum );/ 添加侦听器。my_nstep.addEventListener(change, nstepListener);运行影片文档后,影片如图所示7-12所示,当用户将音量调到26时,影片结果如图7-13所示,7-12 步进器示例音量为0的结果7-13 步进器示例音量为26的结果当用户将音量调到最大时,影片结果如图7-14所示。7-14 步进器示例音量为50的结果7.3.5 forin循环语句forin循环是ActionScript的一种特殊循环。for.in 语句功能是遍历影片剪辑的一级子级、对象的属性或数组的元素。子级包括其它影片剪辑、函数、对象和变量。for.in 循环的常见用法包括循环遍历时间轴上的影片剪辑和一个通用对象的属性。例7-5:输出图6-6中chinamap影片剪辑
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!