- 浏览: 102711 次
- 性别:
- 来自: 大连
文章分类
最新评论
最近用AS3写一些项目,在编程过程中,碰到不少问题,同时也有一些收获和心得。现在贴出来希望对大家在AS3编程有一些帮助。假如你发现有说得不对的地方,你可以指出来,大家一起来讨论。
1、AS3的强制类型转换
我之前一直以为是没有这个功能的,而最近在看一些文档,发现这个功能是有的。目前总结下来有两种写法:
var loader:URLLoader = URLLoader(event.target);
不知道这种写法是借鉴那种编程语言,反正我没有见过。
补充这个语法说明:http://livedocs.adobe.com/flash/8_cn/main/00001211.html
var loader:URLLoader = event.target as URLLoader;
这种写法是借鉴VB.Net编程语言,唉!AS3语法真得一个大杂烩。
2、URLStream和URLLoader
URLStream在文本文件数据方面可以支持多种字符编码。
URLLoader在进过测试后,发现除UTF-8字符编码外,其他字符编码读过来的数据都是乱码。
可通过ByteArray对象字符编码转换(感谢abc12hjc提供补充代码):
Java代码 收藏代码
public class MoxieAS extends Sprite
{
public function MoxieAS ()
{
var stream:URLStream = new URLStream;
stream.addEventListener(Event.COMPLETE, complete);
stream.load(new URLRequest("ttt.xml")); // <root><a /><b /><c /></root>
}
private function complete (event:Event):void
{
var stream:URLStream = event.target as URLStream;
var xml:XML = XML(stream.readUTFBytes(stream.bytesAvailable));
trace(xml.*.length()); // output 3
}
}
具体用那个方式就看实际功能需求了。
3、URLRequest
URLStream、URLLoader、Loader等读取外部数据的类,里的load方法参数值是URLRequest对象。我在编程过程总是喜欢直接写地址字符串,原来习惯改过来看样子要花点时间了。
4、Loader
在使用Loader来加载数据时,添加侦听事件时,注重一定要给Loader的 contentLoaderInfo属性增加事件,而不是给Loader对象增加事件。我就是因为加错对象(要害是编译时还没有报错),郁闷得差点要把电脑给扔了。
错误写法:
Java代码 收藏代码
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
正确写法:
Java代码 收藏代码
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
1 Bitmap swf加载进来SWF转换成一个Bitmap
Java代码 收藏代码
private function complete(evt:Event):void
{
var loaderInfor:LoaderInfo=evt.currentTarget as LoaderInfo;
if (loaderInfor != null)
{
var loader:Loader=loaderInfor.loader;
if (loader != null && loader.content != null)
{
var bmpData:BitmapData=new BitmapData(loader.width,loader.height,true,0);
bmpData.draw(loader,null,null,null,null,true);
if(_roleIcons[loader.name].bitmapData)
_roleIcons[loader.name].bitmapData.dispose();
_roleIcons[loader.name].bitmapData=bmpData;
_roleIcons[loader.name].width = obj.width;
_roleIcons[loader.name].height = obj.height;
delete _roleIcons[loader.name];
}
}
beginLoadIcon();
}
Java代码 收藏代码
//加载成功,发布成功事件
private function completeFun(e:Event):void {
data = loader.content["bitmapData"];
delEvent();
dispatchEvent(e);
}
2 MovieClip 加载SWF里面的元素【MC、Bitmap】
Java代码 收藏代码
var equip:Class=_loader.contentLoaderInfo.applicationDomain.getDefinition("equipment") as Class;
if(equip) {
_equipIcons=new Bitmap(new equip(0,0));
updateGoodsIcon(_notLoadEquip);
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,loadEquipComplete);
_notLoadEquip = null;
_loader.unload();
next();
}
5、Loader加载过来的数据类型
大家知道Loader是用来代替原来 MovieClip的loadMovie功能,用于加载外部的图片文件,SWF文件。
假如加载图片文件(jpg,gif,png等)时,Loader.content得到数据类型是Bitmap对象;
假如加载SWF文件(flash 9 版本)时,Loader.content得到数据类型是MovieClip对象;
假如加载SWF文件(flash 9 以前版本) 时, Loader.content得到数据类型是AVM1Movie对象;
6、stage
在调试flash过程发现,假如把swf文件放到html页面后,stage.stageWidth和stage.stageHeight在第一次加载调用时,他们的值为空值;
7、 AVM1Movie
假如是AVM1Movie 对象时,就不能直接调用stop,play,gotoAndStop等原来MovieClip对象的功能了,而且不能将AVM1Movie 对象转换成MovieClip对象。目前解决办法:一种是用flash cs3 重新生成 flash 9的swf文件;另一种是国外网站有说能AVM1和AVM2两个虚拟机相互调用的方式(贴一个地址);
8、mask
在使用遮罩功能,发现一个问题,假如不把用于遮罩的显示元件通过addChild方法添加到同一级的显示容器里的话,遮罩效果就显示不正常,不知道这个是不是一个bug。我差点因为这个问题而放弃AS3改用AS2了。
发表评论
-
AS3 经典的代码库
2013-03-29 16:39 03D引擎 Papervision3Dhttp://b ... -
AS3开源资源整理
2013-03-29 16:38 0一个使用Stage3D APIs 实现 ... -
如何自定义VideoPlayer的全屏行为
2012-12-13 16:58 1337Flex4中增加了一个视频播放组件:VideoPlayer,相 ... -
代码改变影片剪辑亮度、色调、高级、透明度的方法
2012-12-03 08:41 876通过Color类来改变影片颜色 亮度:(设置影片明暗效果) ... -
as3自己写皮肤
2012-11-30 09:47 0<?xml version="1.0" ... -
AS3 正则表达式详解
2012-11-30 09:27 01.新建正则表达式,有两 ... -
TweenLite用法
2012-11-30 09:26 0TweenLite 是一个缓动的类 ... -
AS3位图的加载、拷贝、绘制
2012-11-30 09:26 0建Bitmap可以是使用Bitmap ... -
AS3中的反射
2012-11-30 09:25 669什么是反射 反射 (Reflection) 是指在程序在运行时 ... -
AS3文本操作
2012-11-30 09:03 1238设置文本框的边框、背景与前景色 默认状态下,文本框的边框和背景 ... -
as3日期格式化以及htmlText的安全转义类
2012-11-30 08:57 1049package org.juke{ ... -
Flash AS3.0关于TextField的过滤,HTML格式,对齐,换行等介绍
2012-11-30 08:56 1386过滤文字输入 TextField.restrict = &q ... -
AS3碎裂重组特效
2012-11-26 15:04 892碎裂指的是图片的碎裂 那我们要先做的是就是得到这张图片,在a ... -
Flash AS3.0实例---接近鼠标的图片缓动效果
2012-11-26 15:02 1189当鼠标移动到图片的一定位置时,图片会缓冲移动到鼠标位置,在现 ... -
flex air 启动本地应用程序
2012-11-26 09:23 862在air 2.0中,可以利用NativeProcess启动本地 ... -
as3打开和保存本地文件
2012-11-26 08:52 2410package { import flash.displa ... -
FLV视频类播放器全屏切换完整AS代码示例
2012-11-21 10:53 843function setFullScreen() { ... -
as3冒泡排序
2012-11-20 09:12 0<?xml version="1.0" ... -
Flex在Image组件使用蒙板
2012-11-16 17:34 0Flex在Image组件使用蒙板 1.Flex SDK3.0 ... -
Flex导入Excel文件示例
2012-11-16 17:33 01.SDK3.0 2.导入文件用FileFilter过滤。由于 ...
相关推荐
根据提供的标题、描述以及部分代码内容,我们可以总结出关于如何在Adobe Flash Professional AS3(ActionScript 3)环境中加载外部SWF、JPG、GIF 和 PNG 文件的一些关键知识点。 ### 1. 引言 在Flash AS3编程中,...
总结,AS3中的JSON处理是通过`JSON.stringify()`和`JSON.parse()`两个核心方法实现的,这些工具使得AS3能够轻松地与其他使用JSON的平台进行数据交互,极大地增强了其在网络通信中的能力。了解和掌握这些基础知识,...
总结一下,`LoadPic.as`和`loader.fla`文件共同实现了AS3中加载图片和实现拖放功能的基本步骤。通过创建`Loader`对象加载图片,监听加载完成事件,然后将图片添加到舞台上并设置为可交互,最后添加鼠标事件监听器以...
总结,Flash AS3 相册的制作涵盖了图形设计、编程、数据处理等多个方面,是学习Flash开发和AS3语法的绝佳实践项目。通过不断探索和实践,可以创造出独具特色的互动相册,为网页增添更多生动和趣味性。
本文将对AS3面试中经常遇到的问题进行总结和解释,涵盖了动态加载资源、事件机制、数据类型、字符串处理、垃圾回收器、Flex与后台语言交互等多个方面的知识点。 1. Loader, URLLoader, URLStream的使用场合和区别 ...
在Flash ActionScript 3.0 (AS3) 中,加载...总结,Flash AS3 加载图片可以通过Loader 和BitmapData 两种方式实现,选择哪种取决于具体需求和场景。了解并熟练掌握这两种方法,将有助于提高AS3 开发中的图像处理能力。
### 张志晨Flash AS3教程之《import》 #### 导读 在ActionScript 3(简称AS3)编程中,“import”语句是非常重要的基础概念之一。它主要用于引入外部类库,使得开发者能够在代码中直接使用这些类库中的功能而无需...
在Flash开发中,Loader类是AS3(ActionScript 3)中的一个重要组件,它允许开发者加载各种类型的内容,包括图像、视频、SWF文件等。本文将深入探讨"FLASH Loader加载外包文件"这一主题,以及如何利用Loader类来实现...
总结,AS3拼图游戏解析涉及了图片处理、自定义类、事件处理、碰撞检测、游戏逻辑和性能优化等多个方面,通过深入研究,开发者不仅可以掌握AS3的基本语法和编程技巧,还能提升游戏开发能力。如果你对AS3感兴趣,这个...
总结,通过ActionScript 3和XML,我们可以创建一个灵活、可扩展的图片轮播系统。理解基本的AS3语法、XML处理以及事件驱动编程是实现这一目标的关键。同时,良好的编程实践和对性能的关注将使轮播组件更加完善和用户...
总结,这个项目实现了从Flash AS3应用中生成图片并使用PHP后台将其保存到服务器的功能。开发者需要理解AS3的图片处理和网络通信,以及PHP的文件操作。这样的技术组合在过去的Web应用中常见,但随着Flash的逐渐淘汰,...
### 纯AS3下访问WebService方法总汇 在Adobe Flash Platform中,ActionScript 3 (AS3) 提供了多种方法来实现客户端与服务器之间的交互。本文将详细介绍如何使用AS3来访问Web Service,包括具体的实现代码示例。 ##...
在AS3中,这些资源通常被加载到内存中,使用Loader类和BitmapData类进行处理。源码会展示如何高效地加载和管理这些资源,以保证游戏流畅运行。 游戏逻辑的实现往往涉及到复杂的算法。在"植物大战僵尸"中,僵尸的...
总结,这款AS3编写的贪吃蛇游戏代码是一个很好的学习实例,涵盖了AS3的基本语法、面向对象编程、游戏逻辑实现以及用户交互等多个方面。通过对源码的分析和学习,开发者可以深入了解AS3编程,并具备开发类似游戏的...
总结起来,DataPump 和 SqlLoader 都是 Oracle 数据库管理和迁移的重要工具,它们各有特点,适用于不同的场景。DataPump 适合大规模的数据迁移和备份,而 SqlLoader 则更适合于快速批量加载结构化数据。熟练掌握这两...
### AS3加载并处理XML知识点详解 #### 一、引言 随着互联网技术的发展与进步,数据交换变得越来越频繁,而XML(可扩展标记语言)作为一种标准的数据交换格式,在多种场景下得到了广泛应用。Adobe Flash ...
总结来说,AS3 中的 `package` 是代码组织的关键,它使我们能够创建清晰的代码结构,提高代码复用和协作效率。在实际项目中,`MyMsg.as` 提供了一个可重用的类,`message.fla` 可能是一个包含交互逻辑的Flash动画,...
总结来说,AS3提供了一套强大而灵活的工具来处理图像,包括加载、切割、操作和保存图片。通过理解BitmapData类和相关API,你可以实现各种复杂的图像处理任务,如等比切割图片,并且能够一键保存和自动命名图片。这个...
总结来说,"as3.0通过XML加载外部图片实例"是一个结合了AS3.0编程、XML解析和图片加载技术的应用示例,它展示了如何动态地、灵活地在Flash应用程序中展示和替换外部图片资源。通过学习这个实例,开发者可以提升对AS...
总结来说,Flash AS3.0控制加载图片旋转缩放的核心技术包括:使用`Loader`类加载图片,通过`DisplayObject.transform`进行旋转和缩放,监听鼠标事件实现交互式操作,以及在必要时重新加载图片。结合HTML嵌入和自定义...