
ActionScript 3
poplarbbs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ActionScript 学习笔记(入门)
最近转学AS3,将所学知识整理一下。由于我是学Java的,所以着重点都是跟Java的对比。 声明方式 public static var varName:Class = new Class();//普通变量 public static const varName:Class = new Class();//常量 var varName:*;//任何类型 var v...2009-09-15 23:27:30 · 360 阅读 · 0 评论 -
用AS3 编写 SWF顺序播放器 的吐血历程
项目需要写一个SWF加载并顺序播放的播放器,其实很简单。只需要做到以下几点。 顺序加载 顺序播放 coding,实现了。但是出现了几个意想不到的问题。 加载后自动播放 加载后自动播放音乐 解决方案1 出炉 第一帧空出来 stop(); 代码控制播放 gotoAndPlay(1); 结果:动画停止,音乐如常。 解决方案2 出炉 放音乐的层第...原创 2010-07-22 16:37:44 · 272 阅读 · 0 评论 -
Embed标签嵌入SWF两种写法
[Embed(source='路径',symbol='类名')] [Embed(source='路径#类名')]原创 2010-08-03 17:25:01 · 555 阅读 · 0 评论 -
AS3 作用域
作用与大家都知道,这里说说AS3中间比较容易出问题的地方。 如果需要调用一个全局方法,可以用 this.["functionname"]()的方式。因为this默认全局。 如果使用闭包,那么闭包之外的大括号就是作用域。那么如果遇到for的情况会发生什么呢? 答案是:最后一次循环环境作为所有必报的作用域。 显然这不是我们想要的,那如何避免呢? 使用如下方法: [code="j...原创 2010-08-10 17:12:51 · 202 阅读 · 0 评论 -
地图编辑器开发中的心得
MouseEvent 的使用中要小心 MouseMove。因为尽量使用 MouseOver 代替,以保证性能。 大量 DisplayObject 会导致性能严重下降,暂时采用我称为 Flow 的方式解决。先是对象重用,流转加载。 尽量使用单一功能的小类,方便重用和修改。 要加强事件驱动的思想和设计能力 可以考虑使用现有的 Flow 作为缓冲,使用单一 BitmapData 作为显示对象进...原创 2010-02-03 17:55:21 · 200 阅读 · 0 评论 -
地图编辑器几种实现的总结
地图编辑器中最重要的性能问题出现在编辑区域显示上。编辑的地图可能超过 AS3 BitmapData 支持的30000X30000,并且需要支持多层、选取、复制、粘贴等功能。所以在显示上肯定需要采取某种手段节约性能。 先介绍一下地图的基本信息:地图是由许多个 Tile 组成的,地图编辑器就是将资源的 Tile 粘贴到地图中,并由编辑器将相应资源显示在相应位置。 以下是我惨痛的试错经历...原创 2010-03-04 15:30:08 · 789 阅读 · 0 评论 -
[AS/FLEX] Flex AS3与Java的Socket通信
[AS/FLEX] Flex AS3与Java的Socket通信 新建flash文件 :SocketExample.fla 添加按钮:btnSend 修改文档 类为:SocketExample 新建AS3文件:SocketExample.as view source print ? 01. package ...原创 2010-05-28 17:01:22 · 179 阅读 · 0 评论 -
关于package的一句话心得——不能太简单
今天同事发生一个显示对象找不到x方法的问题,最终发现是因为变量名"button"与包名同名造成的。囧原创 2010-12-15 18:48:16 · 232 阅读 · 0 评论 -
关于Event的一句话心得——都是堆栈
今天设计一个任务队列的时候发现AS3中的Event也是在堆栈中一直压……这不跟递归一样么。囧原创 2010-12-15 18:50:16 · 167 阅读 · 0 评论 -
EverNote上的备忘汇总
[b]New[/b] [Embed(source="xxx.swf", symbol="org.xxx.className")] private var embeddedClass : Class; 注:如果symbol中有引用其他类,会同时被引入。 [b]Hack[/b] 1 fla中如果元件层次改变,即变成一个新的元件实例,原有元件实例消失。解决方案目前是在两层中都预设实例,...原创 2010-06-30 10:22:47 · 128 阅读 · 0 评论 -
游戏资源初步心得
登录、loading等资源必须预先编译到主swf中。 UI资源在初步Loading时加载。 物品图标资源个小量多,又未必都能用上,适合独立加载。 地图资源个大量多,必须独立加载。...原创 2010-06-30 10:27:45 · 157 阅读 · 0 评论 -
加载并调用swf中的MovieClip
原理很简单: 1 将swf加载到某个ApplicationDomain中。 2 从该ApplicationDomain中拿到Class。 3 实例化Class,并控制其播放和停止。 具体操作: 1 实例化 URLRequest 请求 URL。 2 实例化 LoaderContext 设置 ApplicationDomain。 3 Loader 加载 swf。 4 getDefi...原创 2010-07-06 13:26:52 · 272 阅读 · 0 评论 -
循环删除子元素的写法
正确写法: [code="java"] while(elements.numElements > 0) { var element : SelectableElement = elements.getElementAt(0) as SelectableElement; remov...原创 2010-07-06 13:44:22 · 164 阅读 · 0 评论 -
E4X 操作 XML
转自:http://space.flash8.net/space/?uid-879423-action-viewspace-itemid-488818 在AS3中,XML数据类型是AS3的内置数据类型,XML对象有自己的运算符。通过AS3的核心类XML类和XMLLIST类来实现XML的操作。XML的空间命名由QName和Namespace联合来实现的。 AS3保留了以前版本中对XML的处理AP...原创 2010-07-06 14:12:22 · 240 阅读 · 0 评论 -
[转]如何让if语言写的更简洁?(七种布尔转换为假的情况总结)
明确的知道哪些数值(或数据类型)转换成布尔值之后为假,可以使程序更加简洁。在AS3中,一共有三种数据类型和三种变量的值在转换为布尔值之后为假。 七种布尔转换为假的情况多数数据类型或变量值转换成布尔值之后均为真,因此我们只需记住哪些情况为假即可。转换成布尔值之后为假的情况一共有6种: void, undefined,null, ”(这里不是双引号,是两个单引号,表示空字符串,亦可以用...原创 2010-11-17 17:39:23 · 273 阅读 · 0 评论 -
AS3解疑:三种 for 循环的效率
AS3 提供了三种循环 for、forin、foreachin,这里测试一下三种方式的效率问题。 测试数据是一个 1000W 字符串的 Array,循环 push 到新的 Array 中。唯一不同的就是for的方式。为了防止GC造成的影响,每次输出后都会强制GC一次。 ================================================ for (var i ...原创 2010-05-14 15:58:06 · 639 阅读 · 0 评论 -
Flash 右键菜单自定义 方案集锦
flash右键菜单相关知识:http://args.cn/post/2010/05/knowledge-of-flash-right-click-menu-2/ 通过Html屏蔽右键:http://www.qgy18.com/2009/04/noflashmenu/原创 2010-05-12 11:20:30 · 180 阅读 · 0 评论 -
SWF在IDE中加载图片正常,发布后不正常解决办法
是因为路径错误造成的,使用以下两部可以解决,但内部原理还需要深挖。 地址使用绝对路径 使用flashplayer播放还是不行,这时倒出成exe就行了。 ...原创 2010-05-11 18:44:34 · 185 阅读 · 0 评论 -
ActionScript 学习笔记(数据交互)
数据请求: // (1) 初始化URLLoader var _loader:URLLoader = new URLLoader(); // (2) 注册事件 _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); _loader.contentLoaderInfo.addEventL...2009-09-18 00:20:37 · 187 阅读 · 0 评论 -
jsfl 备忘
http://java.chinaitlab.com/ServletJsp/759445.html http://www2.flash8.net/teach/1134.htm http://flash.9ria.com/thread-26288-1-1.html http://www.21shipin.com/html/89379.shtml http://flash.qq.com/a/2...2009-11-18 15:29:08 · 88 阅读 · 0 评论 -
最近遇到的问题备忘
昨天发布,遇到几个问题。这里记录一下。 问题1 现象: Flash中将元件绑定到PlayerInfo1类,继承PlayerInfo。此处是别人写的,我将PlayerInfo继承我自己的类。造成PlayerInfo中无法用 ["方法名"] 的方式拿到元件中的组件。 解决: 暂时还没有找到问题的真正症结所在。只能不让 PlayerInfo 直接继承 Sprite。然后通过其它方式...原创 2009-11-22 21:25:55 · 173 阅读 · 0 评论 -
Flex 数据绑定备忘
数据绑定是将数据与界面控件或者空间的属性绑定,达到改变数据自动显示效果的目的。声明时使用 [Bindable] 标签,简单基础数据直接写一个在声明前加上标签即可。同时也可以绑定复杂数据结构(如Object)中的属性。此时成员变量 Object 需要绑定标签,所引用的属性应该提供 get 和 set 方法,并将 set 方法声明为 [Bindable] 。(此处不清楚为什么要绑定 set,按理说应该...原创 2010-03-05 11:15:26 · 159 阅读 · 0 评论 -
关于Undo地实现
使用“堆栈”纪录操作数据的“深度克隆”。出栈时触发渲染事件,交由外部渲染。 如果有 Redo 的话将出栈数据压入 redo栈。 Redo 操作时同上,但相反。...2010-03-08 08:59:25 · 127 阅读 · 0 评论 -
一个让人 orz 的 set 方法
曾经有这么一个 set 方法,他可以存一个Number值,但却一直没有人去用它。 基于不浪费资源的考虑,我用了,于是我只能 orz。。。 不卖关子了,这个方法就是 Sprite 中的 width 和 height。 用了保证你终身难忘,有勇气的可以试一下。...2010-03-24 15:08:47 · 91 阅读 · 0 评论 -
细节备忘
Dictionary 的用法: dict[key]; 这样的用法是不行的,至少要 dict[key] = null。不然无法存入。 for 和 for each的用法: for 遍历 Dictionary的时候,会把key变成字符串。所以只能写成 for (var xx : String in Dict) 否则报类型转换错误。 for each 遍历 Dictionary 直接出...2010-03-24 15:48:36 · 90 阅读 · 0 评论 -
ASwing 中 JTree 实现 folder 自定义图标
最近在用 ASwing 做项目,需要根据节点内容自定义 folder 的图标。网上找到一些例子但总有各种各样的问题,于是通过查看 ASwing 的代码,实现了这个简单的功能。在这里跟大家分享,也记录一下比较容易错的几个点。 首先说一下ASwing渲染的结构。 大概的结构就是这样,最后每个节点的渲染是在 TreeCell 中提供图标的。所以实现功能只需要自定义一个自己的 Tree...2009-12-17 16:12:31 · 145 阅读 · 0 评论 -
一个出人意料的性能Bug
今天测试的时候遇到一个直接导致Flash Player无响应的bug。现象一般发生在系统接收到特定条数的信息时触发。 经过排查,最终锁定在一个使用了Aswing JTextArea的类。其中有这么两句: mainText = chatInfoView.getTextField(); mainText.wordWrap = true; mainText.autoSize = TextF...原创 2010-01-08 17:18:40 · 182 阅读 · 0 评论 -
AS3 程序员的技能树
<iframe id='xmindshare_embedviewer' src='http://www.xmind.net/share/_embed/jinni_cao/flash-platform-developer-skill-tree/' width='750px' height='250px' frameborder='0' scrolling='no'></iframe...原创 2010-01-15 10:19:54 · 161 阅读 · 0 评论 -
最近的一些心得以及Soma框架的理解
可以利用 AS3 的命名空間防止別人重寫方法。在內部調用時使用自己命名空間內的方法即可。 可以利用命名空間實現方法重載 如果傳遞不定參數,可以參照 Tweenlight 的方式,傳遞一個 Object。(TweenLight) 繁複的設定可以通過將 container 傳入子中進行設定(PushButton) 異步操作,善用 callback ...原创 2010-01-19 16:00:54 · 264 阅读 · 0 评论 -
PureMVC 各部分职责
Model 均是Mediator 的子类,用于操作数据。 提供 public 方法,不接受消息。 通过消息通知 Controller、View 数据更新 不应该负责逻辑 View 监听感兴趣的消息 (listNotificationInterests 中定义) 对接收到的消息做处理(handleNotification 中实现) 处理界面相关的简单逻辑 可以保留 P...2010-04-16 11:45:25 · 123 阅读 · 0 评论 -
AS3 必须知道的细节
BitmapData.getPixel32() 返回值不准确 因为,ARGB在还原时除法造成的精度问题。 Loader 导入图片最大长宽不得超过 8,192 像素。 补充:AIR 1.5 和 Flash Player 10 是 8,192, Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880。 ...2010-04-21 02:28:32 · 133 阅读 · 0 评论 -
动态语言+事件驱动小结
事件驱动 什么时候使用事件 外部条件决定执行流程(监听) 状态更改(监听/发送) 异步调用外部行为(发送) 解耦和(监听/发送) 事件的替代方案 Observer(解耦/外部行为) Callback(异步) Command(解耦) 动态语言 动态语言优势 Function 可以独立使用,避免类爆炸。 有闭包,同上。 动态添加行为。(很少用到) ...2010-04-29 10:45:21 · 136 阅读 · 0 评论 -
关于BitmapData的一句话心得——copyPixels
先说一句,无变化copy bitmapdata的,直接用此方法。 想要透明,canvas最后一个参数必须是0x0,copyPixels最后一个参数是true。原创 2010-12-07 16:53:33 · 560 阅读 · 0 评论