Flash 与课件制作:加载图片
Flash 与课件制作:加载图片
今天下午写了一下这个简单的东西,加载图片。今晚我们玩一下课件的制作,flash 制作课件是一个很实用的东西,能够制造很多动态的效果。当然要制作这些东西花费时间也不少。今晚我们只是利用绘图APi 以及loader 这两个类进行对本地的图片进行加载。但是我们加载的时候 显示的进度会有一些特别,采用扇形填充的方式来填充。有关扇形的东西可以观看之前写的一篇扇形的话题。
加载图片我们使用loader 这个类就可以了,为了让其看起来更加好看,我们可以对图片进行加工,也就是说对图片底部进行一个阴影制作。我们借用滤镜就可以使用到了。非常方便。同时,这个制作当中,我们使用了一个进度显示。也是一个比较有趣的进度显示,采用扇形填充的方式对其图片进行变化。当加载完毕的时候,对图片进行偏移一个位置,这样我们的进度条显示就能够居中。
package { // 写于2010年6月2日,图片加载的进度显示 // 夏天的树人 import flash.display.Sprite; import flash.display.Loader; import flash.display.Shape; import flash.display.LoaderInfo; import flash.display.Bitmap; import flash.net.*; import flash.system.ApplicationDomain; import flash.events.*; import flash.filters.DropShadowFilter; import flash.text.*; public class PhotoLoader extends Sprite { //定义事件 public static const COMPLETE:String=Event.COMPLETE; public static const PROGRESS:String=ProgressEvent.PROGRESS; public static const IO_ERROR:String=IOErrorEvent.IO_ERROR; public static const INIT:String=Event.INIT; private var filter:DropShadowFilter; private var contents:*; private var isActive:Boolean=false; private var pen:Shape=new Shape(); private var bottom:Shape=new Shape(); private var contain:Sprite=new Sprite(); private var loadinfo:TextField=new TextField(); public function PhotoLoader() { init(); } //初始化阴影滤镜 private function init():void { filter=new DropShadowFilter(); filter.strength=0.3; addChild(bottom); addChild(pen); bottom.graphics.lineStyle(1); bottom.graphics.beginFill(0xffffff); bottom.graphics.drawCircle(0,0,30); bottom.graphics.endFill(); bottom.filters=[filter]; addChild(contain); addChild(loadinfo); } //加载图片 public function load(path:String,isActive:Boolean=true):void { var loader:Loader=new Loader(); //addChild(loader); this.isActive=isActive; loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); loader.contentLoaderInfo.addEventListener(Event.INIT,onInit); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onErrorHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress); loader.load(new URLRequest(path)); } private function onInit(event:Event):void { this.content=event.currentTarget.content; this.dispatchEvent(new Event(PhotoLoader.INIT)); } public function get content():* { return contents; } public function set content(contents:*):void { this.contents=contents; } private function onComplete(event:Event):void { event.currentTarget.addEventListener(Event.COMPLETE,onComplete); event.currentTarget.removeEventListener(ProgressEvent.PROGRESS,onProgress); var bitmap:*=event.currentTarget.content; this.content=bitmap; contain.addChild(bitmap); bitmap.x=this.width*=-0.5; bitmap.y=this.height*=-0.5; loadinfo.text=""; this.removeChild(loadinfo); this.dispatchEvent(new Event(PhotoLoader.COMPLETE)); pen.graphics.clear(); if (isActive) { drawBase(bitmap.width,bitmap.height); } } private function onProgress(event:ProgressEvent):void { loadinfo.text=Math.floor(event.bytesLoaded/event.bytesTotal*100).toString()+"/%"; drawProgressBar(event.bytesLoaded/event.bytesTotal*360); this.dispatchEvent(new Event(PhotoLoader.PROGRESS)); } private function onErrorHandler(event:IOErrorEvent):void { this.dispatchEvent(new Event(PhotoLoader.IO_ERROR)); } //绘制图片底部 private function drawBase(w:Number,h:Number):void { var shape:Shape=new Shape(); contain.addChildAt(shape,0); shape.graphics.lineStyle(0,0,0); shape.graphics.beginFill(0xffffff); shape.graphics.drawRect(this.content.x-w/20,this.content.y-h/20,w+w/10,h+h/10); shape.graphics.endFill(); shape.filters=[filter]; } //进度显示,用于进度条显示 private function drawProgressBar(startAngle:Number):void { pen.graphics.clear(); pen.graphics.lineStyle(1); pen.graphics.beginFill(0x8000FF); pen.graphics.moveTo(0,0); for (var i:int=0; i<startAngle; i++) { var px:Number=30*Math.cos(-i*Math.PI/180); var py:Number=30*Math.sin(-i*Math.PI/180); pen.graphics.lineTo(px,py); } pen.graphics.lineTo(0,0); pen.graphics.endFill(); } } }
初步使用,然后对图片进行分布。这个分布也是我们常用一种技巧。
分布学当中一种很常用应用。矩阵分布方式。
package { import flash.display.MovieClip; import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Bitmap; import flash.net.*; import flash.system.ApplicationDomain; import flash.events.*; public class Main extends MovieClip { private var loader:PhotoLoader; public function Main() { init(); } //循环加载12张图片 private function init():void { for (var i:int=1; i<=12; i++) { loader=new PhotoLoader(); addChild(loader); if (i<=3) { loader.x=(i)*140+(i)*20; loader.y=100; } else if(i>3 && i<=6) { loader.x=(i-3)*140+(i-3)*20; loader.y=220; } else if(i>6 && i<=9) { loader.x=(i-6)*140+(i-6)*20; loader.y=340; } else { loader.x=(i-9)*140+(i-9)*20; loader.y=460; } loader.addEventListener(PhotoLoader.COMPLETE,imageLoadComplete); loader.addEventListener(PhotoLoader.PROGRESS,onProgress); loader.addEventListener(PhotoLoader.IO_ERROR,onErrorHandler); loader.load("image/"+i+".jpg"); } } private function imageLoadComplete(event:Event):void { } private function onProgress(event:Event):void { } private function onErrorHandler(event:Event):void { } } }
扩展:扇形的知识,同时可以对图片增加交互的实验。对鼠标进行交互
好了,写到这里。累了。
Flash 与课件制作:加载图片相关推荐
- 每天学一点flash (20) flash cs3.0 外部加载图片
今天开始看了一些外部加载图片的,因为as3.0 外部加载已经没有没有了loadMovie类,所以as3.0要转变思想了.可是迷惘的事情特别多,之前看了一些关于容器的那些东西,看不懂.也许我还没有入门吧 ...
- Flash相册加载图片完毕等比缩放的类
每次做相册类的flash的时候,图片加载完毕之后都要写等比缩放的函数来处理加载图片. 今天又遇到了,也不知道哪根筋不对了,弄了十几分钟老是算法有错误.好好的一个美女图片被搞的惨不忍睹.所以写了这个类 ...
- Flash+XML 加载图片
主场景MC代码: function parseXML() {var _loc11 = _xml.firstChild;//图片总数var _loc12 = _loc11.childNodes.leng ...
- Delphi FastReport动态加载图片
Delphi FastReport动态加载图片 2011-01-06 作者:李海彬 阅读:684 以前用FastReport制作报表,从来没有打印过图片,这段时间做了个打印个人简历的 ...
- php预加载图片,图片预加载的一个简明例子
图片预加载技术的典型应用:如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展示 ...
- Android中使用ImageLoader加载图片
Android上让人头疼的莫过于从网络上获取图片,然后显示图片,最后还要考虑到图片的回收问题,这之间只要有任何一个环节有问题都可能直接OOM.尤其在需要展示图片的列表页面,会加载大量网络上的图片,每当 ...
- 小学计算机动画制作,小学flash动画课件制作方法
小学flash动画课件制作方法 flash动画可以制作多种多样的课件,而且简单又方便,下面是小编为大家推荐小学flash动画课件的内容,希望能够帮助到你,欢迎大家的阅读参考. 方法/步骤 1 上网搜索 ...
- cocos微信小游戏开发-http请求-使用微信云函数-toast-loading-动态加载图片-添加触摸事件-微信分享-label点击事件-背景音乐音效-程序活动状态判断-性能优化
cocos开发微信小游戏相关-<益智推箱> 扫码查看功能,有需要可直接提问 Cocos Creator 3.4 用户手册 cocos creator基本操作 微信开发文档|云函数 1. h ...
- 游戏UI动态加载图片优化
说到UI优化,很多人对其并不以为意,UI的制作无非使用UGUI或者NGUI.UI优化主要是针对图集,还有一些依赖项的优化,针对的是内存优化,上面这些都是关于静态UI的优化,这个是作为程序员都要经历的阶 ...
最新文章
- 极速理解设计模式系列:11.单例模式(Singleton Pattern)
- 谷歌的硬件梦:Pixel手机、ChromeOS平板和Home音箱
- mysql数据库唯一性_mysql表的字段怎么设置唯一性
- 1.7 总结-深度学习-Stanford吴恩达教授
- 2019年python就业前景_2019年Python数据挖掘就业前景前瞻
- 【Linux】一步一步学Linux——setfacl命令(117)
- java责任链设计模式_Java中的责任链设计模式
- 360手机助手游戏怎么实名认证 360手机助手下载的游戏怎么关了悬浮窗
- 菜鸟涂鸦作品展_No.1
- android 链式结构,Android 架构师之路10 设计模式之责任链模式
- linux中使用网易云音乐
- jsp连接mysql 菜鸟_在JSP中访问数据库大全
- 电信校园网宽带创翼破解,路由器PPPOE拦截法
- 考研计算机300分什么水平,工科类考研300分什么概念?算不算高?
- gentoo问题汇总
- 量化投资学习必读书目(八)——《短线交易大师》
- 智能门铃app开发的功能有哪些
- 解决win10笔记本睡眠一段时间后无法唤醒、自动关机的问题
- 魔兽世界盒子怎么修改服务器地址,多玩魔盒怎么设置界面 多玩魔兽盒子多玩界面调整教程...
- win7计算机无用系统文件夹,c盘怎么清理到最干净(win7如何删除c盘无用文件)...
热门文章
- (6)继承与面向对象设计- Effective C++改善程序与设计的55个具体做法(Effective C++: 55 Specific Ways to Improve Your Programs)
- 未来计算机发展趋势作文,未来的计算机作文300字(精选3篇)
- 十三、SpringBoot与分布式
- 文献阅读:Learning Aggregated Transmission Propagation Networks for Haze Removal and Beyond
- Tensorflow2.0 VGG实现图片分类
- 华为数通笔记-Smart Link和Monitor Link
- 「智能化改造项目」配电室智能环境监测系统
- oracle 优化器之执行计划
- uniApp 微信小程序 授权 公众号推送信息
- 小学计算机课知识点,小学信息技术课程课件