`
ch_kexin
  • 浏览: 898965 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

AS3.0 关于用URLLoader加载外部图片

 
阅读更多

很多人都想当然的直接用URLLoader加载外部图片然后通过byteArray去转化成bitmap,其实也是可行的,但是出问题几率也会大很多。

我推荐一个比较实用的方法用URLLoader以二进制的方式加载外部图片,获得URLLoader.data的ByteArray数据,再用Loader去加载,这时Loader.content就是一个bitmap了
以下是一个例子
[code]
package {
        import flash.display.Bitmap;
    import flash.display.Loader;
        import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.filters.ConvolutionFilter;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
        import flash.net.URLLoaderDataFormat;
        import flash.utils.ByteArray;
   
    public class Main extends Sprite{
        private var loader:URLLoader;
        public function Main():void{
            loadImage("image.jpg");
        }
        private function loadImage(_path:String ):void{
            loader = new URLLoader;
                        loader.dataFormat=URLLoaderDataFormat.BINARY ;
            loader.addEventListener (Event.COMPLETE , onImageLoaded);
            loader.load(new URLRequest (_path));
        }
        private function onImageLoaded(e:Event):void {
                        var _ba:ByteArray = e.target.data as ByteArray;
                        var _l:Loader = new Loader;
                        _l.contentLoaderInfo.addEventListener (Event.COMPLETE, onBytesLoaded);
                        _l.loadBytes(_ba);
            //-------------------
            loader.removeEventListener (Event.COMPLETE , onImageLoaded);
            loader = null;
        }
                
                private function onBytesLoaded(e:Event):void 
                {
                        var _bitmap:Bitmap = e.target.content as Bitmap;
                        trace(_bitmap.width, _bitmap.height );
                        addChild (_bitmap );
                        //
                        e.target.loader.contentLoaderInfo.removeEventListener (Event.COMPLETE, onBytesLoaded);
                }                
    }
}
[/code]
分享到:
评论

相关推荐

    As3.0 视频加载

    在本文中,我们将深入探讨如何使用AS3.0(ActionScript 3.0)来实现视频加载和本地文件操作的功能。ActionScript是Adobe Flash Player和Adobe AIR中的编程语言,广泛用于创建互动式富媒体内容,包括视频播放器。 ...

    AS 3.0中文文档

    5. **ActionScript与Flash Player交互**:通过AS 3.0,开发者可以控制Flash Player的行为,如加载外部资源、播放音频和视频,以及与用户交互。 6. **网络通信**:XMLSocket、URLLoader和XML等类支持XML、JSON和其他...

    flash as3.0 实例

    7. **外部资源交互**:AS3.0可以加载外部SWF、图像、XML、JSON等文件,进行数据交换。同时,通过XMLSocket或URLLoader,还可以与服务器进行通信,实现AJAX风格的应用。 8. **声音和视频处理**:AS3.0提供了强大的...

    简单的用as3.0播放声音文件的例子

    在AS3.0中,加载外部资源,如声音文件,通常涉及到 `URLLoader` 类和 `URLRequest` 类。首先,创建一个 `URLRequest` 对象,指定声音文件的URL。然后,使用 `URLLoader` 加载这个请求,将数据加载到内存中。 3. **...

    flash as3 加载外部swf jpg gif png loader urlloader的通用代码

    根据提供的标题、描述以及部分代码内容,我们可以总结出关于如何在Adobe Flash Professional AS3(ActionScript 3)环境中加载外部SWF、JPG、GIF 和 PNG 文件的一些关键知识点。 ### 1. 引言 在Flash AS3编程中,...

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

    5. **位图处理**:为了展示图片,AS3.0提供了BitmapData类,可以用来加载、绘制和操作位图。Bitmap和Sprite类用于在舞台上显示位图。 6. **XML或JSON数据加载**:通常,相册的数据(如图片URL和描述)会存储在外部...

    FLASH AS3.0 菜单

    7. **外部数据加载**:如果菜单项需要从外部文件动态加载,可以使用`Loader`和`URLLoader`类加载XML或JSON数据。 8. **优化性能**:避免不必要的计算和重复渲染,使用` ENTER_FRAME`事件监听器来控制动画更新,提高...

    as3.0 源码

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

    关于as3.0的帮助资料

    此外,AS3.0支持闭包,这是一种强大的功能,允许函数访问并操作其外部作用域的变量,即使在函数外部。 在处理数据方面,AS3.0的Array和Object类提供了丰富的操作方法。Array支持动态大小调整和多种排序算法,而...

    AS3.0游戏编程大学

    最后,书籍可能还会讨论如何使用AS3.0与网络通信,例如加载外部数据(如地图或用户分数),或者实现多人在线游戏的简单机制。这涉及到URLLoader、XML和JSON解析等网络编程技术。 总的来说,AS3.0游戏编程大学是一本...

    AS3.0读取xml外调图片并滚动

    总的来说,通过AS3.0与XML的结合,我们可以轻松地加载外部数据并实现动态内容。在这个例子中,我们学习了如何读取XML文件中的图片URL,加载图片并创建一个滚动展示的图片容器。这种方法在创建富媒体应用、幻灯片展示...

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

    在本文中,我们将深入探讨如何使用AS3.0(ActionScript 3.0)来实现一个外部XML文件驱动的上下翻页效果,特别是在一个音乐播放器应用中的应用场景。首先,我们需要理解AS3.0的基本语法和XML数据处理,然后我们会讨论...

    Flash as3.0 小巧MP3 播放器 源码

    在我们的"Flash as3.0 小巧MP3 播放器 源码"项目中,`MP3.fla`文件是主要的工作区,包含舞台上的所有视觉元素以及相关的ActionScript代码。在Flash CS4中,开发者可以使用时间轴上的关键帧和脚本面板编写AS3代码,...

    as3中文手册chm版

    10. **网络通信**:AS3.0支持XMLSocket、URLLoader和XML等类进行网络通信,可以实现HTTP、FTP等协议的数据交换,常用于与服务器交互或加载外部资源。 11. **本地存储**:使用SharedObject类可以实现客户端的数据...

    Flash as3.0制作的格斗之路小游戏源码。

    8. **网络通信**:虽然“格斗之路”作为一个单机小游戏,但AS3.0的Socket和URLLoader类可用于实现与服务器的通信,如果游戏扩展到多人在线对战,这些功能就会显得尤为重要。 总的来说,“格斗之路”小游戏通过AS3.0...

    AS3.0语言在Flash编程中的应用

    - 使用`URLLoader`类加载外部XML文件。 2. **解析XML数据**: - 利用`XML`类解析加载的数据。 3. **显示内容**: - 根据解析后的数据,在舞台上动态加载图片或其他元素。 #### 4. 总结 通过本文的学习,我们不仅...

    as3.0纯代码MP3播放器

    AS3中的`URLLoader`类用于加载外部数据,包括MP3文件。加载过程中可以监听`Event.PROGRESS`和`Event.COMPLETE`事件,以便在加载过程中提供反馈或确保数据完整加载。 10. **优化和性能**: 对于大型或高码率的MP3...

    ActionScript3.0帮助文件

    例如,URLLoader类用于加载外部数据,XML类则提供了解析和操作XML文档的方法。 对于图形绘制,AS3.0的DisplayObject容器体系结构允许开发者创建复杂的视觉层次结构。Shape、Sprite和Bitmap类提供基本的绘图和图像...

    AS3[1].0与网络通信

    【AS3.0 与网络通信】在ActionScript 3.0中,网络通信是通过`flash.net`包中的类来实现的,这使得Flash应用程序能够与外部数据源进行高效而标准的交互。以下是关于这一主题的详细说明: 1. **数据通信基础** - **...

    as3帮助中文版本

    7. **ActionScript 3.0与Flash Player的交互**:AS3.0可以控制Flash Player的很多功能,如加载外部资源、播放动画、处理用户输入等。 8. **ActionScript 3.0与Flex框架的结合**:Flex是一种基于AS3.0的MVC框架,...

Global site tag (gtag.js) - Google Analytics