`
it_liuyong
  • 浏览: 97794 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

as3加载外部图片的两种方式

    博客分类:
  • flex
 
阅读更多
package net.burchin.loading {
    import flash.display.Sprite;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.utils.ByteArray;
    import flash.events.Event;
    import flash.geom.Matrix;
    public class LoadingByByteArrayDoc extends Sprite {
        private var _imageData:BitmapData;    //图片数据
        private var _loader:Loader;    //装载
        public function LoadingByByteArrayDoc():void {
            init();
            sendRequest('images/flower.jpg');
        }
        //初始化
        private function init():void {
            _imageData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFFFFFFFF);
            _loader = new Loader();
        }
        //发送请求
        private function sendRequest(p_url:String):void {
            var m_request:URLRequest = new URLRequest(p_url);
            var m_loader:URLLoader = new URLLoader();
            m_loader.dataFormat = URLLoaderDataFormat.BINARY;
            m_loader.addEventListener(Event.COMPLETE, onSendComplete);
            m_loader.load(m_request);
        }
        //事件,请求发送完毕
        private function onSendComplete(e:Event):void {
            var m_content:ByteArray = e.target.data as ByteArray;
            _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
            _loader.loadBytes(m_content);
        }
        //事件,装载完毕
        private function onLoadComplete(e:Event):void {
            _imageData.draw(_loader, new Matrix(stage.stageWidth/_loader.width, 0, 0, stage.stageHeight/_loader.height, 0, 0));
            var m_image:Bitmap = new Bitmap(_imageData);
            this.addChild(m_image);
        }
    }
}

==================================
package net.burchin.loading {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.text.TextField;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.geom.Matrix;
    public class LoadingDoc extends Sprite {
        private var _imageData:BitmapData;    //图片
        private var _loader:Loader;    //装载
        private var _rate:TextField;    //进度显示
        public function LoadingDoc() {
            init();
            _rate.text = '开始下载';
            _rate.autoSize = 'center';
            _rate.textColor = 0x000000;
            _rate.x = (stage.stageWidth - _rate.width)/2;
            _rate.y = (stage.stageHeight - _rate.height)/2;
            this.addChild(_rate);
            sendRequest('images/flower.jpg');
        }
        //初始化
        private function init() {
            _imageData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFFFFFFFF);
            _loader = new Loader();
            _rate = new TextField();
        }
        //发送请求
        private function sendRequest(p_url:String) {
            var m_request = new URLRequest(p_url);
            _loader.load(m_request);
            _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
            _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
        }
        //事件,下载完毕
        private function onComplete(e:Event) {
            _imageData.draw(_loader, new Matrix(stage.stageWidth/_loader.width, 0, 0, stage.stageHeight/_loader.height, 0, 0));
            var m_image:Bitmap = new Bitmap(_imageData);
            this.removeChild(_rate);
            this.addChild(m_image);
        }
        //事件,下载中
        private function onProgress(e:Event) {
            var m_info:LoaderInfo = e.target as LoaderInfo;
            var m_percent:uint = (m_info.bytesLoaded/m_info.bytesTotal)*100;
            _rate.text = '已经下载'+m_percent.toString()+'%';
        }
    }
}
分享到:
评论

相关推荐

    VB6.0动态加载ActiveX控件漫谈

    只提供这两种方法,而没有提供Add方法,因为没有Add,这两种方法也就没什么用处), 增加了Add方法,该方法就是用于动态加载控件的: Controls.Add(progid as String, Name as String); progid: ActiveX部件的ProgID...

    javascript深入理解js闭包

    变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999;  function f1(){  alert(n);  }  f1(); // 999 另一方面,在函数外部...

    单位换算控件

    组合单位有两种表示:内部表示和外部表示 内部表示是基本单位的组合,外部表示是单位的外部简写(注意:外部简写不能包含乘法、除法、乘方字符(这三个字符可以自由设置!)) 每种组合单位设置一个基准单位...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    At present business processes are old and explicit in industrial market of certification and detection filed, as well as users can not have effective and convenient communication with detection ...

    windows 程序设计

    PM最初的设计构想是成为Windows的一种保护模式版本,但是图形API改变程度太大,致使软件生产厂商很难提供对这两种平台的支持。 到1990年9月,IBM和Microsoft之间的冲突达到了高峰,导致这两个公司最后分道扬镳。IBM...

    (重要)AIX command 使用总结.txt

    S State ->列出指定状态的设备,3种状态可选,(1)已定义->defined,d,D,0;(2)可用->available,a,A,1;(3)停止->stopped,s,S,2; s Subclass ->指定设备的子类名称,subclass包括什么类型可用参数P显示; t Type ->指定...

    Spring.net框架

    我们的Factory就是利用这种方式根据配置文件动态加载程序集,动态创建对象并设置属性的。有了这个Factory,MainApp中的内容就很简单了: using System; namespace IocInCSharp { public class MainApp { public ...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例026 使用as关键字将对象转换为指定类型 32 2.4 流程控制语句的使用 34 实例027 小明去学校和医院分别要走哪条路 34 实例028 利用条件语句判断用户登录身份 35 实例029 判断指定月份属于哪个季节 36 实例030 使用...

    如何编写批处理文件批处理文件批处理文件

    调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。 入侵常用参数: MIN 开始时窗口最小化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 ...

    RepChain许可链基础组件-其他

    2、网络层:采用JDK内置的TLS实现,支持入网许可验证,在此基础上进行去中心化的gossip组网,网络传播支持P2P和Pub/Sub两种方式 3、共识层:完成区块的输入共识和输出共识。采用兼顾实时性和安全性的CFRD算法,既...

    自己写的dll的简介

    可共享性:前者不可共享,也就是说如果两个EXE使用了同一个静态库,那么实际在内存中存在此库的两份拷贝,而后者是可共享的。 可升级性:前者不可升级(因为静态库符号已经编入EXE中,要升级则EXE也需要重新编译),...

    cms后台管理

    3.修改jdbc链接,自己导入数据库。 4.把服务器下install\config下的web.xml复制出来覆盖掉新建项目WEB-INF下的web.xml 5.classes下有四个文件,手动烤到myeclipse项目src根目录下中 6.将服务器上jeecms项目删掉,...

    中文版RFC,共456

    RFC948 IP 数据包通过IEEE 802.3 网络传输的两种方法 RFC949 FTP 未公开的独特命令 RFC951 引导协议(BOOTP) RFC955 朝向一个处理过程应用的传输服务 RFC962 TCP-4 的最初 RFC968 “这是开动前的黑暗” RFC974 邮件...

    RFC中文文档-txt

    RFC948 IP 数据包通过IEEE 802.3 网络传输的两种方法 RFC949 FTP 未公开的独特命令 RFC951 引导协议(BOOTP) RFC955 朝向一个处理过程应用的传输服务 RFC962 TCP-4 的最初 RFC968 “这是开动前的黑暗” RFC974 邮件...

    rfc中文文档目录,包含部分翻译

    RFC948_IP 数据包通过IEEE 802.3 网络传输的两种方法 RFC949_FTP 未公开的独特命令 RFC951_引导协议(BOOTP) RFC955_朝向一个处理过程应用的传输服务 RFC962_TCP-4 的最初 RFC968 “这是开动前的黑暗” RFC974_邮件...

    新版Android开发教程.rar

    � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利 益 。 将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。 � Android 的源代码遵循 Apache...

Global site tag (gtag.js) - Google Analytics