`
it_liuyong
  • 浏览: 100524 次
  • 性别: 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()+'%';
        }
    }
}
分享到:
评论

相关推荐

    flash as3 加载图片的两种方法

    在Flash ActionScript 3.0 (AS3) 中,加载...总结,Flash AS3 加载图片可以通过Loader 和BitmapData 两种方式实现,选择哪种取决于具体需求和场景。了解并熟练掌握这两种方法,将有助于提高AS3 开发中的图像处理能力。

    VB加载外部文件

    在VB(Visual Basic)...总结,VB加载外部EXE文件是一种实现程序模块化、动态扩展和灵活更新的有效手段,通过调用Windows API函数可以实现这一功能。在实际开发中,要权衡功能扩展与安全性的关系,合理使用这一技术。

    as3 bimapdata 波浪效果

    总之,AS3中的波浪效果利用BitmapData和图像扭曲算法实现,通过加载外部图档并对其进行动态处理,可以在舞台上呈现出栩栩如生的波浪动画。通过对压缩包中的源代码进行研究和实践,你可以深化对AS3和图像处理的理解,...

    AS3 调用SWF类库

    在AS3(ActionScript 3)中,调用SWF类库是一项常见的任务,尤其在构建可重用组件、模块化开发或者加载外部资源时。本文将深入探讨如何使用AS3来加载和交互SWF类库,以及相关的重要知识点。 首先,让我们了解SWF是...

    AS3新手框架开发研究

    - **数据类型**:AS3有两种主要的数据类型——值类型(如int、uint、Number、Boolean、String等)和引用类型(如对象和类实例)。 - **变量声明**:使用`var`关键字声明变量,例如`var myVar:String;` - **类与...

    altera-fpga两种下载方式.doc

    ALTERA FPGA(Field Programmable Gate Array)的配置下载方式主要包括两种:主动配置模式(AS)和JTAG配置模式。这两种方式各有特点,适用于不同的应用场景。本文将详细解析这两种下载方式及其使用方法。 **主动...

    PB中实现图片的多种显示方式

    除了这两种基本控件,PowerBuilder还支持自定义控件和编程方式来显示图片: 3. 自定义控件:开发者可以创建自定义的User Object,通过编写代码实现更复杂的图像处理功能,比如缩放、旋转、滤镜效果等。例如,"show....

    as3+flashdevelop+flashCS4学习应用001 源码

    对于初学者,理解这两个工具的协同工作方式是学习AS3的重要一步。 “src”文件夹通常包含所有源代码文件。在这个学习资源中,它可能包括AS3类文件、资源文件(如图片或声音)以及其他与项目相关的素材。通过查看和...

    as3学习好资料

    AS3 相对于前两个版本有着显著的改进,包括更好的性能、更简洁的语法以及对现代 Web 开发实践的支持。 ##### 2.1 基本概念 - **面向对象编程 (OOP)**:AS3 支持封装、继承和多态等面向对象编程特性,使得代码更加...

    flash图片轮播效果源码

    8. **图片加载**:使用`Loader`类加载外部图片资源,通常配合`Event.COMPLETE`事件监听图片加载完成。 9. **布局与定位**:使用`x`、`y`属性定位图片,可能还需要`width`和`height`调整大小,以适应不同的屏幕尺寸...

    AS3语言和组件参考 for CS4

    2. **TextField**:用于显示文本,支持动态和静态两种类型,可以进行文本格式化和交互式输入。 3. **Button**和**CheckBox**:用于创建交互式UI元素,可以通过事件处理进行功能扩展。 4. **Loader**:用于加载外部...

    AS3实现登录功能重构

    1. **创建组件类**:首先,我们需要创建两个AS3类,一个用于登录框,另一个用于登录按钮。登录框组件可能包括输入字段(用户名和密码)和一个提交按钮,而按钮组件则应包含点击事件处理。 2. **图形设计**:使用...

    as3声音架构的理解.pdf

    - **创建与加载声音**:可以通过两种方式创建声音对象:一是从库中直接加载预置的声音;二是通过外部URL加载声音文件。 - **播放控制**:Sound 类提供了`play()`方法来控制声音的播放,同时允许开发者指定播放的起始...

    FLEX通过AS3与FLASH交互

    它基于Adobe Flex SDK,提供了MXML和ActionScript两种编程语言,用于构建用户界面和处理业务逻辑。AS3则是ActionScript的最新版本,以其强大的面向对象特性、高性能和广泛的库支持而受到开发者欢迎。 FLASH则是广泛...

    FLex 左右滑动图片墙

    4. **图片加载**:为了显示图片,我们需要使用`Loader`类加载外部资源。每个图片都会有一个对应的`Loader`对象,负责异步加载图片数据,并将其转换为可显示的对象。 5. **手势识别**:为了实现滑动功能,我们需要...

    AS3.0外部XML上下翻译效果

    至此,我们已经构建了一个基本的AS3.0应用,它能够从外部XML文件加载歌曲信息,并根据用户交互实现上下翻页效果。这个示例展示了AS3.0中XML的使用、类的定义以及事件处理,这些都是ActionScript 3.0开发的基础技能。...

    AS3.0简单相册,适合初学者

    6. **XML或JSON数据加载**:通常,相册的数据(如图片URL和描述)会存储在外部XML或JSON文件中。使用Loader和URLLoader类可以加载这些数据,并用XML或JSON解析器解析它们。 7. **动画和时间轴控制**:通过Tween类或...

    flash as3 视频播放器

    在IT行业中,Flash AS3(ActionScript 3)是一种广泛应用于创建交互式内容、游戏和动画的编程语言,尤其在过去的视频播放器开发领域中占据了重要地位。Flash AS3视频播放器是基于Adobe Flash Player运行时环境的,它...

    as3.0 源码

    3. **动态加载XML**:使用`URLLoader`类加载外部XML文件,需要监听`Event.COMPLETE`事件来处理加载完成的数据。例如: ```actionscript var loader:URLLoader = new URLLoader(); loader.addEventListener(Event....

Global site tag (gtag.js) - Google Analytics