ActionScript3实现真实放大镜效果

来源 :科学时代·上半月 | 被引量 : 0次 | 上传用户:longzhi2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要] 随着Flash技术运用在应用程度开发、多媒体课件开发、教学案例开发、web应用服务等方面,如何制作出符合真实的效果,以成为当下关注的问题。该文阐述了利用ActionScript3语言来实现真实放大镜的效果的方法,从而取代原先利用遮罩和层的技术来实现放大镜动画效果的方法。
  [关键词] Flash ActionScript放大镜
  
  1.概述
  原先我们在制作层和遮罩的技术将放大镜的效果给呈现出来,但在用户看来非常的不真实,并且在自定义方面也做的不够,不能任意换取背景图片和改变放大镜的样式。
  随着ActionScript语言的不断完善,我们可以不使用时间线就能完成互动的要求,并且可以任意修改变量的属性值,将完成我们想要实现的效果。
  2.开发语言ActionScript3.0介绍
  ActionScript3.0 是Adobe 公司为了适应新的形势需要而推出的面向开发人员的一门脚本语言。ActionScript3.0 与JavaScript 语言相似,是基于ECMAScript(ECMA-262)第4 版规范创建的面向对象的编程语言,对应的虚拟机为AVM2。它在FLASH 内容和应用程序中实现了交互性、数据处理以及其它许多功能。
  3.设计介绍
  我们如何利用ActionScript3在flash中轻松创建放大镜效果。下方是放大镜的效果图。该应用程序易于用户自定义设置属性并在加载图片时显示进度条的加载状况。
  
  何为自定义?1)任意更替背景图片,只需将图片放置到与swf文件同一目录下便可。图片应该是相当高的分辨率,而显示的图片则会是按比例缩小的版本。2)任意修改矩形放大镜的大小和样式,则需改变变量“glassWidth”和“glassHeight”的值,但如果要创建一个圆形的放大镜,也是修改上述两个参数的值, 即“glassWidth”和“glassHeight”的值都为glass.graphics.drawCircle(glassWidth/2,glassWidth/2,glassWidth/2);
  显示load的加载进度条其实很容易,只需一个事件监听器附加到loader类的实例中,同时监听PROGRESS的事件,并将显示的结果输入到动态的TextField中。在这个例子中,我们还使用了“loader”和“infoBox”,加载完成后,我们会删除“updateInfo”监听器以及其他连接到“loader”的监听器。
  4.设计过程
   1)打开FlashCS4,创建一个fla文件,并创建AS层;
   2)加入ActionScript代码,代码如下:
  //更改背景图片以及显示加载图片的进度条
  startApp();
  function startApp():void {
   loader=new Loader();
   loader.load(new URLRequest("Kazanie_Skargi.jpg"));
   infoBox.text="Loading: 0 KB of 443 KB";
   loader.contentLoaderInfo.addEventListener(Event.COMPLETE,initPic);
   loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,updateInfo); }
  function updateInfo(e:ProgressEvent):void {
  infoBox.text="Loading: "+String(Math.floor(e.bytesLoaded/1024))+" KB of "+String(Math.floor(e.bytesTotal/1024))+" KB.";
  }
  //创建放大镜的样式
  function drawInGlass(a:Number,b:Number):void {
   var curBd:BitmapData;
   var curBmp:Bitmap;
   var xbeg:Number=a-glassWidth/2;
   var ybeg:Number=b-glassHeight/2;
   curBmp=new Bitmap(new BitmapData(glassWidth,glassHeight));
   curBmp.bitmapData.copyPixels(imageData,new Rectangle(xbeg,ybeg,glassWidth,glassHeight),new Point(0,0));
   curBd=curBmp.bitmapData;
   glass.graphics.clear();
   glass.graphics.lineStyle();
   glass.graphics.beginBitmapFill(curBd);
   glass.graphics.drawRect(0,0,glassWidth,glassHeight);
   glass.graphics.endFill();
   }
   function glassClear():void {
   glass.graphics.clear();
   }
  5.结果与讨论
  通过ActionScript3语言的编写,可以实现相对真实的放大镜效果,有别传统模式利用遮罩来实现的效果,并且在此基础上我们还可以进一步更改背景图片和改变放大镜的样式和大小,使其功能更加完备。
  参考文献:
  [1]穆克.ActionScript 3.0精髓[M].东南大学出版社,2008.
  [2]洛特.ActionScript 3.0 Cookbook中文版 [M].电子工业出版社,2007.
  [3]蒋国强.ActionScript3.0完全自学手册[M].机械工业出版社,2009.
  [4]孙颖.Flash ActionScript 3 殿堂之路[M].电子工业出版社,2007.
  [5]皮特斯.Flash ActionScript 3.0动画教程[M].人民邮电出版社,2008.
其他文献
现浇混凝土结构的施工质量受到混凝土组成材料、配合比、施工工艺、环境与养护条件等多种因素的影响,很容易出现质量问题,如强度不足、表观质量缺陷等.正确地分析质量缺陷的
本文以2019年政府工作报告(中英文)为语料,选择文中典型翻译案例,重点分析在此类政府公文文本的翻译过程中省译法与增译法的使用.通过探讨省译法与增译法在实际翻译实践过程
盆栽花卉多一盆一种,但若将两种协调的花草同盆栽植,适当造型,其艺术效果要比独盆栽植好得多。现举两例:一、仙人球与垂盆草同盆选口径比仙人球大2-3厘米的粗泥盆。(不宜用
为解决既有保护建筑更新改造与保留建筑风貌之间的矛盾,采用保留建筑物外墙,换掉既有建筑的木楼板等横向构件,新增框架结构体系,并使新增结构对外墙形成良好约束的方法对建筑
与实际工程相结合,本文介绍了砖混建筑为了满足使用功能的变更,采用无支撑托换施工技术将局部承重墙拆除,新增框架承重、增设柱下独立基础的加固设计思路;介绍了可行的施工方
商业银行发展个人住房贷款业务具有广阔的前景。就宏观层面看,商业银行积极发放个人住房贷款,能在很大程度上促进个人住房消费的全面启动和兴旺。从而促进住房建设的发展,并带动
郑燮是清代“扬州八怪”的代表性书法家,他的书法师古不守古,具有创新精神.分析郑燮的书法风格及其成因,对我们现代书法的研究与创作极具借鉴意义.郑燮的书法风格可以概括为
沧月是“女子武侠”的代表性人物,也是其中的佼佼者,代表作有《听雪楼》系列、《鼎剑阁》系列、《镜》系列等.本论文欲以《镜》系列为范本,分析其作品所蕴含的浓郁的宿命意识
最近,通过DNA重组技术已在酵母细胞中表达出HBsAg以生产安全的疫苗。了解能否应用酵母源性疫苗增高以前用血源疫苗免疫者的抗体水平甚为重要。作者首先用固相放射免疫法测定
一、前言南水北调是解决京杭运河(长江以北)沿线的水源问题。由于调水的输水线选择了古运河的线路,故该工程的实施,可为国家增加一条南北向长达1400余公里的水上运输线。调