今天好好研究了一下AS3显示对象的几何属性,核心结论如下:
1. DisplayObject的x、y、width、height、scaleX、scaleY、rotation跟父显示对象几何属性的更改没有关系!父对象统一的任何操作不会影响子对象的这些几何属性!
2. 其width、height只跟其子显示对象的几何尺寸变化、手动修改rotation、scale或者width、height有关!
3. 其scale只跟手工修改其width、height或者scale有关
4. 其x、y只跟手动修改x、y有关!
也正是因为这个原因,导致我设想在用户动态调整播放器大小的情况下保证l...
发表于2008年7月15日 20:51:00 更新于2008年11月25日 07:26:00
由于项目需要,今天写了一个鼠标提示类,现在共享出来,欢迎大家探讨。
ToolTip.as
...
ToolTip.as
...
发表于2008年7月11日 22:56:00 更新于2008年7月11日 22:56:00
所谓数据驱动,也就是后台有一个model,前台有一个view,由model驱动view进行显示。
在实践过程中,我一般的思路是在某view类中保存一个对驱动model的引用,有一个fresh方法就是根据这个引用的内容进行刷新显示。只要model有改变的地方,手工调用下fresh方法就可以做到驱动view。本想这样model内容一改变,view里的内容也会跟着改变,这样无需dispatch事件,就可以做到驱动。
结果今天终于发现了一个大大的错误了!如下图所示

一旦model的更改不是直接更改...
在实践过程中,我一般的思路是在某view类中保存一个对驱动model的引用,有一个fresh方法就是根据这个引用的内容进行刷新显示。只要model有改变的地方,手工调用下fresh方法就可以做到驱动view。本想这样model内容一改变,view里的内容也会跟着改变,这样无需dispatch事件,就可以做到驱动。
结果今天终于发现了一个大大的错误了!如下图所示
一旦model的更改不是直接更改...
发表于2008年7月10日 21:50:00 更新于2008年9月3日 10:06:00
1. for...in和for each...in使用注意
今天碰到一个奇怪的问题,在for each in一个Array,总是会出错!经过仔细研究发现,原来我给这个数组添加了动态属性(几个字符串),而数组中存放的元素为object,我原本想在循环里面引用object元素的一些属性,而其实在for in数组的时候,它把这些动态字符串属性也循环到了,自然这些字符串动态属性是引用不到object的这些属性的,于是出错!
for in,以及for each...in会循环array所有的动态属性,以及array中存放的元素,一定要注意,不只是循环数组中存放的元素!
2. setter...
今天碰到一个奇怪的问题,在for each in一个Array,总是会出错!经过仔细研究发现,原来我给这个数组添加了动态属性(几个字符串),而数组中存放的元素为object,我原本想在循环里面引用object元素的一些属性,而其实在for in数组的时候,它把这些动态字符串属性也循环到了,自然这些字符串动态属性是引用不到object的这些属性的,于是出错!
for in,以及for each...in会循环array所有的动态属性,以及array中存放的元素,一定要注意,不只是循环数组中存放的元素!
2. setter...
发表于2008年7月7日 11:19:00 更新于2008年7月24日 11:23:00
在任何一门编程语言中,变量作用域和生命周期都是两个十分重要的话题
在c++中,变量作用域与生命周期相关的重要概念有堆、栈、静态数据区等,而在java以及as3中,由于是由虚拟机来完成内存的分配以及释放,因此对于c++编程人员来说,一方面可能以为以前调试时一大堆memory leak的问题不会存在,一方面可能又害怕java以及as3的gc(garbage collector)有没有c中手工的delete管用。
的确,gc并不是万能,我很头疼,从前几篇文章中可以看出gc的不足之处,因为出现bug后,c++编程人员知道肯定是new了没有delete,慢慢查或者借助相关工具如boun...
在c++中,变量作用域与生命周期相关的重要概念有堆、栈、静态数据区等,而在java以及as3中,由于是由虚拟机来完成内存的分配以及释放,因此对于c++编程人员来说,一方面可能以为以前调试时一大堆memory leak的问题不会存在,一方面可能又害怕java以及as3的gc(garbage collector)有没有c中手工的delete管用。
的确,gc并不是万能,我很头疼,从前几篇文章中可以看出gc的不足之处,因为出现bug后,c++编程人员知道肯定是new了没有delete,慢慢查或者借助相关工具如boun...
发表于2008年7月6日 12:12:00 更新于2008年7月7日 19:52:00
预备:
as3中的资源管理与GC
as3中的Class对象和Function对象
很多as3开发人员在博客中都有相关gc以及资源管理的文章,不管作者又没有深入的去研究或者仔细的考虑抑或是直接从别人处摘抄,我想有些问题还是要澄清的透彻好!
注:本文通篇以
问题一、为什么要removelistener
很多人都知道在addlistener之后,...
as3中的资源管理与GC
as3中的Class对象和Function对象
很多as3开发人员在博客中都有相关gc以及资源管理的文章,不管作者又没有深入的去研究或者仔细的考虑抑或是直接从别人处摘抄,我想有些问题还是要澄清的透彻好!
注:本文通篇以
为研讨对象objA.addEventListener(objB.func)
问题一、为什么要removelistener
很多人都知道在addlistener之后,...
发表于2008年7月6日 11:21:00 更新于2008年7月6日 11:21:00
as3是完全的面向对象,Class和Function类都是Object的子类,而且都是dynamic动态类!而且一旦我们定义了一个类,定义了一个函数,那么我们就生成了一个Class实例和一个Function实例!
有两种方式来得到Class实例和Function实例
一种直接定义一个class或者一个function,这样类名、函数名自动成为Class实例和Function实例
还有一种如同定义实例一样,将一个Class引用(一个类名)或者Function(一个函数名)赋给变量(增加了引用计数)
一、Class
首先我们不能混淆Class实例和某class实例
通...
有两种方式来得到Class实例和Function实例
一种直接定义一个class或者一个function,这样类名、函数名自动成为Class实例和Function实例
还有一种如同定义实例一样,将一个Class引用(一个类名)或者Function(一个函数名)赋给变量(增加了引用计数)
一、Class
首先我们不能混淆Class实例和某class实例
通...
发表于2008年7月6日 11:01:00 更新于2008年7月6日 11:04:00
1、as3中不管是普通的object,还是displayobejct都一视同仁
2、fp9中的gc采用了两种方式进行内存清理
a、reference count引用计数,顾名思义,根据对象被引用的次数,如果为0,gc清除之
b、mark sweeping标记扫荡,从root开始往下扫荡,标记所有和root有关联的object,清除没有关联的,方法虽然精确,但是很耗资源,所以fp9只是偶尔来一次扫荡

3、你永远无法知道gc什么时候会调用,你能做的只是等待,等待gc在某一时刻运行...
2、fp9中的gc采用了两种方式进行内存清理
a、reference count引用计数,顾名思义,根据对象被引用的次数,如果为0,gc清除之
b、mark sweeping标记扫荡,从root开始往下扫荡,标记所有和root有关联的object,清除没有关联的,方法虽然精确,但是很耗资源,所以fp9只是偶尔来一次扫荡

3、你永远无法知道gc什么时候会调用,你能做的只是等待,等待gc在某一时刻运行...
发表于2008年7月2日 14:59:00 更新于2008年7月2日 22:51:00
as3中提供了bytearray类,以字节作为数组的基本元素。
as3中的string类采用的是unicode的UTF-16编码。
as3默认传递数据到服务器以及接受服务器数据都采用utf-8编码。
1.传递数据到服务器
如果服务器request接受的是gbk编码,则需要将string转换为gbk传递到服务器。有两种解决方法:
A、如果如果本身就是中文操作系统,可以usecodepage=true,这时候中文参数将转换为gbk编码传递
B、借助bytearray进行转码。我们可以采用bytearray的writemutibytes方法,将unicode的string按...
as3中的string类采用的是unicode的UTF-16编码。
as3默认传递数据到服务器以及接受服务器数据都采用utf-8编码。
1.传递数据到服务器
如果服务器request接受的是gbk编码,则需要将string转换为gbk传递到服务器。有两种解决方法:
A、如果如果本身就是中文操作系统,可以usecodepage=true,这时候中文参数将转换为gbk编码传递
B、借助bytearray进行转码。我们可以采用bytearray的writemutibytes方法,将unicode的string按...
发表于2008年6月26日 11:34:00 更新于2008年6月26日 11:35:00
最近忙于搬家毕业等杂事,一直没有发表日志,鉴于这几天开始学习linux,下载了个ubuntu8.04安装在vmware的虚拟机中,使用过程中的一些事项和资料记录如下:
首先是Linux与GNU的关系:Linux只是一个内核,于1991年由linus开发出,而其实GNU计划早在1984年就已提出,旨在开发出一套完整的类UNIX的完全免费的操作系统,迄今已经开发出了很多和Unix接口的部件如GCC、BASH等。而GNU的内核编写一直没有启动,至今也没有完成。于是一些厂商将GNU计划下的一些部件捆绑Linux内核以及其他软件包发布成一个安装的套件,这也就是redhat、ubunt...
首先是Linux与GNU的关系:Linux只是一个内核,于1991年由linus开发出,而其实GNU计划早在1984年就已提出,旨在开发出一套完整的类UNIX的完全免费的操作系统,迄今已经开发出了很多和Unix接口的部件如GCC、BASH等。而GNU的内核编写一直没有启动,至今也没有完成。于是一些厂商将GNU计划下的一些部件捆绑Linux内核以及其他软件包发布成一个安装的套件,这也就是redhat、ubunt...
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang AI 最近发表
- claude code / codex的一些配置(2026年5月5日 17:38:10)
- 2026.5.5(2026年5月5日 17:27:39)
- js的锁以及异步调用相关(2024年11月30日 10:58:51)
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
最近回复

浙公网安备33010802004887号