- 浏览: 1084866 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
第一话:加载Base64 encoded string
通过加载Base64 string创建图片。没错,就像你看到的,加载一个字符串也可以生成图片,当然不是说图片url是字符串(废话!),图片数据就在字符串中。
问题的关键是需要这么一个类Base64,它的converToByteArray方法可以把字符串转化为ByteArray,有了ByteArray数据,我们就可以生成图片了。
代码如下:
//http://www.motobit.com/util/base64-decoder-encoder.asp
//你可以在线把一张小图片转为base64 string,把字符串粘贴到这里赋值给变量str
//过些天做个有输入框的实例,可以把你得到的字符串粘到里面,生成图片
var str:String = "";
var byteArr:ByteArray = Base64.converToByteArray(str);
var loaderoader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
loader.loadBytes(byteArr);
function onImageLoaded(e:Event):void{
addChild(loader);
trace(loader.width + " : " + loader.height);
}
第二话:简单渐进式加载图片类ByteLoader
上面只是为了给大家开开眼界,不表。你可能会说“我的目的很简单,我只是要加载一张图片,用渐进的方式边加载边显示,我可不知道哪里有一串字符串让我去加载。”
嗯,来看看这个类吧,ByteLoader继承Loader类,使用方法跟Loader类一样简单。
原理是:
用URLStream类去加载图片数据流,
然后用帧循环stream.readBytes(data, data.length)将数据读入ByteArray中;
同时在帧循环中卸载Loader中旧的数据,加载新的数据super.unload();super.loadBytes(data);
代码如下:
通过加载Base64 string创建图片。没错,就像你看到的,加载一个字符串也可以生成图片,当然不是说图片url是字符串(废话!),图片数据就在字符串中。
问题的关键是需要这么一个类Base64,它的converToByteArray方法可以把字符串转化为ByteArray,有了ByteArray数据,我们就可以生成图片了。
代码如下:
//http://www.motobit.com/util/base64-decoder-encoder.asp
//你可以在线把一张小图片转为base64 string,把字符串粘贴到这里赋值给变量str
//过些天做个有输入框的实例,可以把你得到的字符串粘到里面,生成图片
var str:String = "";
var byteArr:ByteArray = Base64.converToByteArray(str);
var loaderoader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
loader.loadBytes(byteArr);
function onImageLoaded(e:Event):void{
addChild(loader);
trace(loader.width + " : " + loader.height);
}
第二话:简单渐进式加载图片类ByteLoader
上面只是为了给大家开开眼界,不表。你可能会说“我的目的很简单,我只是要加载一张图片,用渐进的方式边加载边显示,我可不知道哪里有一串字符串让我去加载。”
嗯,来看看这个类吧,ByteLoader继承Loader类,使用方法跟Loader类一样简单。
原理是:
用URLStream类去加载图片数据流,
然后用帧循环stream.readBytes(data, data.length)将数据读入ByteArray中;
同时在帧循环中卸载Loader中旧的数据,加载新的数据super.unload();super.loadBytes(data);
代码如下:
package { import flash.events.EventDispatcher; import flash.events.ProgressEvent; import flash.events.Event; import flash.utils.ByteArray; import flash.net.URLStream; import flash.net.URLRequest; import flash.display.Loader; public class ByteLoader extends Loader{ public var url:String; public var data:ByteArray; private var stream:URLStream; public function ByteLoader(url:String = ""){ if(url != ""){ loadUrl(url); } } //加载 public function loadUrl(_url:String):void{ url = _url; data = new ByteArray; stream = new URLStream; stream.load(new URLRequest(url)); stream.addEventListener(Event.COMPLETE,completeFun); stream.addEventListener(ProgressEvent.PROGRESS,progressFun); addEventListener(Event.ENTER_FRAME,loaddata); } private function loaddata(e:Event):void{ if (stream.bytesAvailable > 0){ stream.readBytes(data, data.length); } if (data.length > 0){ super.unload(); super.loadBytes(data); } } //加载中 private function progressFun(erogressEvent):void{ if(stream.bytesAvailable == 0) return; dispatchEvent(e); trace(e.bytesLoaded); } //加载完成 private function completeFun(e:Event):void{ stream.removeEventListener(Event.COMPLETE,completeFun); stream.removeEventListener(ProgressEvent.PROGRESS,progressFun); dispatchEvent(e); this.closeStream(); } //清除数据 public function closeStream():void{ if (stream){ if (stream.connected) stream.close(); } if (hasEventListener(Event.ENTER_FRAME)){ removeEventListener(Event.ENTER_FRAME, loaddata); } } } }
发表评论
-
greenSock新老库
2012-08-07 13:25 0老库-做项目的时候比新库完全不抖啊 -
Starling开发的游戏源码
2012-07-26 17:13 0Starling开发的游戏源码 -
一个基于STARLING的TOWER塔防游戏
2012-07-24 15:27 0一个基于STARLING的TOWER塔防游戏 -
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
HTTP/1.1协议规范(中文归纳版)
2012-04-18 16:39 2113一、介绍(introduction) ... -
[转] [Flash/Flex] 加载SWF性能VS影片剪辑性能
2012-03-15 22:29 0http://bbs.9ria.com/viewthread. ... -
关于富士通windows 7家庭普通板升级为windows 7旗舰版
2012-03-05 14:51 2015windows7普通家庭版不能一下升级到windows7旗舰版 ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2449实现这效果其实比较简单,主要是思路~! package ... -
请问如何才能让加载到一半的SWF不自动播放
2012-02-29 03:06 1538我用loader加载l=new Loader(); ... -
greensock-as3
2012-02-23 21:26 0greensock-as3 -
禁止输入文本可以粘贴
2012-02-10 13:15 2316//禁止输入文本粘贴动作 private static ... -
江湖情缘游戏里的跳的类
2012-02-08 23:55 0package com.app.role.montions ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
[教程] 路点导航(Waypoint Navigation)
2011-12-31 00:51 0前言:这个不难,所以知道的童鞋不要喷,不知道的童鞋也不要怕,要 ... -
ARPG游戏引擎设计思路
2011-12-31 00:48 00.整体结构 下载 (32.92 KB ... -
Embed绑定XML与txt文本文件
2011-12-28 15:54 4648使用Embed标签可以将图片绑定到swf中并显示,那么我 ... -
Flash_Rich_Text_Editor(完美的富文本编辑器)
2011-12-27 17:55 0Flash_Rich_Text_Editor(完美的富文 ... -
弹弹堂测试
2011-12-08 04:21 0弹弹堂测试弹弹堂测试 -
一些DEMO
2011-11-28 17:42 0一些DEMO一些DEMO -
Matrix学习
2011-11-28 16:51 0Matrix学习
相关推荐
2. **图像对象**:在程序界面设计阶段,创建一个图像控件,用于显示加载动画。 3. **加载动画**:编写代码,设置图像控件的图片源为对应的gif资源,并控制动画的播放。 4. **事件驱动**:通过事件驱动编程,例如在...
二、IIS 8 及以上版本的预加载实现 在 IIS 8 及以上版本中,预加载功能已经内置在 IIS 中,不需要额外安装模块。可以直接在 IIS 控制台中进行预加载设定。在 IIS 8 中,应用程序池和网站是单独存在的,但是网站运行...
module_init宏的定义涉及到了多个层级的宏展开,其最终作用是在编译生成的目标文件.o中创建一个.initcall级别的section,这个section包含了模块初始化函数的地址。 接下来,我们需要关注的是内核模块加载顺序控制的...
类加载器的设计遵循双亲委派模型,它分为三个主要部分:启动类加载器、扩展类加载器和应用类加载器。 #### 二、类加载过程 类加载过程主要包括三个步骤: 1. **加载**:通过类的全限定名找到该类的二进制字节流。...
2. **旋转图标**:这类加载图常以一个旋转的图标或图形为主,如旋转的箭头、齿轮或环形结构。它们在内容不确定的加载时间中尤其常见,因为它们不承诺特定的完成时间。 3. **点动式加载**:由三个或更多的点组成,...
这就是“magento图片延时加载插件”发挥作用的地方。 图片延时加载(也称为懒加载)是一种优化网页性能的技术,它只在用户滚动到图像所在的视口区域时才开始加载图片,而不是一次性加载所有图片。这种策略可以显著...
"init.js"的作用就像一个中央控制器,负责组织和调用其他必要的脚本。以下是一些可能实现的方法: 1. **动态`<script>`元素**:在"init.js"中,可以动态创建`<script>`元素,并设置其`src`属性为要加载的JavaScript...
2. 主要的类加载器: - 引导(Bootstrap)类加载器:这是最基础的类加载器,由本地代码实现,负责加载JRE的基础类库,如rt.jar,它不直接暴露给开发者。 - 扩展(Extension)类加载器:由ExtClassLoader实现,加载...
**二、加载项管理工具的作用** 1. **查看加载项**:用户可以通过管理工具查看已安装的所有IE加载项,了解它们的名称、开发者、状态等信息。 2. **启用/禁用加载项**:如果发现某个加载项导致浏览器运行缓慢或者...
理解这个加载顺序有助于我们更好地组织和管理Struts2应用的配置,避免重复配置,提高代码复用性,同时也有利于问题排查。例如,当一个Action没有按照预期执行时,我们可以检查是否因为配置冲突或者加载顺序错误导致...
2. **懒加载不起作用:** 检查是否正确引入了LayUI库,以及是否按照正确的格式调用了`flow.lazyimg`方法。 3. **兼容性问题:** LayUI支持大多数主流浏览器,但在某些老旧浏览器中可能会遇到兼容性问题。可以通过...
在网页设计中,"加载"(loading)是一个关键的用户体验元素,特别是在内容丰富的网页或需要时间来完全加载的页面上。加载gif图片是为用户提供视觉反馈的一种常见方式,表明页面内容正在加载,让用户知道他们需要等待...
在教程中,定义了一个名为`circle`的动画,其作用是改变元素的透明度,从而产生渐变效果。 - 动画通过`animation`属性绑定到具体的元素上,其中可以设置动画的持续时间、速度曲线(如`linear`)和重复次数(如`...
2. **HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings**:这个键则存储了当前用户的IE加载项设置。 ### 删除IE加载项的注册表方法 虽然可以通过IE的“管理加载项”界面来移除加载项,...
Java的类加载器是Java虚拟机(JVM)的核心组件之一...通过以上内容,我们可以了解到Java类加载器在Java程序运行过程中的关键作用,以及如何根据需求定制类加载器。理解这些概念对于开发高效、安全的Java应用至关重要。
综上所述,JavaScript在加载广告方面起着关键作用,它使得广告能够动态、交互地展示,同时提供了优化加载速度、保障用户安全、适应不同设备和监测广告效果的多种可能性。对于网页开发者来说,理解和掌握这些知识点是...
GIF动态加载效果在此起到了很好的作用,它们可以是旋转的圈圈、上下滑动的条形、渐变填充的形状等,这些动态效果在加载过程中为用户提供了一种视觉反馈,增强了交互感。 60多款GIF动态加载效果效果的集合提供了丰富...
在IT行业中,用户体验是至关重要的一个环节,而加载动态图在提升用户体验方面起着不可或缺的作用。"加载动态图集锦"这个主题涵盖了多种类型的加载动画,包括进度条、菊花(通常指的是菊花转圈加载图标)以及圆圈样式...
- **作用**:当用户滚动到列表底部时,自动加载更多数据,常用于分页加载场景。 - **实现策略**:在ListView或RecyclerView中,可以通过监听滚动事件,判断是否到达底部,然后加载新的数据并添加到现有数据集中。 ...