sshong发表于2008年7月17日 08:25:00 更新于2008年7月17日 11:01:00
所谓容器,不是指displayobjectcontainer,而是指可以承载子显示对象,并根据容器的尺寸和滚动条进行子显示对象显示的container,如flex中的container包中的相关类。

容器最大的难点就是即便是内容的尺寸高出容器自身width、height时
1. 外界看到只是容器自身尺寸区域,不会被撑破
2. 外界获取container.width和height必须是container自身的尺寸,而不会随着内容的尺寸变化而变化!

其实我一开始想到的实现方式是mask遮罩,也实现了一个例子,结果发现其不符合第2条,因为一般的displayobjectcont...
标签:AS3容器实现分类:As3&Flex阅读:7538评论:0阅读全文
sshong发表于2008年7月16日 22:41:00 更新于2008年7月16日 22:51:00
今天好好研究了一下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...
标签:AS3显示对象几何属性分类:As3&Flex阅读:4484评论:0阅读全文
sshong发表于2008年7月15日 20:51:00 更新于2008年11月25日 07:26:00
由于项目需要,今天写了一个鼠标提示类,现在共享出来,欢迎大家探讨。

ToolTip.as
...
标签:as3鼠标提示tooltip分类:As3&Flex阅读:11538评论:23阅读全文
sshong发表于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的更改不是直接更改...
标签:as数据驱动modelview分类:As3&Flex阅读:3385评论:2阅读全文
sshong发表于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...
标签:as3c++作用域生命周期分类:As3&Flex阅读:6576评论:2阅读全文
sshong发表于2008年7月6日 12:12:00 更新于2008年7月7日 19:52:00
预备:
as3中的资源管理与GC
as3中的Class对象和Function对象

很多as3开发人员在博客中都有相关gc以及资源管理的文章,不管作者又没有深入的去研究或者仔细的考虑抑或是直接从别人处摘抄,我想有些问题还是要澄清的透彻好!

注:本文通篇以
objA.addEventListener(objB.func)
为研讨对象

问题一、为什么要removelistener
很多人都知道在addlistener之后,...
标签:asremovelistener原因分类:As3&Flex阅读:4505评论:1阅读全文
sshong发表于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实例
通...
标签:asClass对象Function对象分类:As3&Flex阅读:4691评论:0阅读全文
sshong发表于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在某一时刻运行...
标签:as资源管理GC分类:As3&Flex阅读:4416评论:2阅读全文
sshong发表于2008年6月12日 17:43:00 更新于2008年6月12日 17:43:00
1.as3中显示对象根据继承关系不同,可以接受的鼠标事件也不一样。

继承自DisplayObject的相关类如shape、bitmap只支持add、remove等事件,不支持鼠标事件,而继承自InteractiveObject,顾名思义支持鼠标键盘等事件。

因此对于某些遮盖现象,譬如按钮simplebutton上有一个textfield文本框,如果要让tf不遮盖这个button的鼠标移入移出,一种方法是将textfield的mouseenabled设为false,另一种是想办法把这个tf转换为其他的不支持鼠标事件的对象,譬如bitmap。

如果要模拟模态对话框,将sta...
标签:as3鼠标交互分类:As3&Flex阅读:3313评论:0阅读全文
sshong发表于2008年6月12日 15:59:00 更新于2008年6月12日 15:59:00
  按照常理,所谓事件机制是指不同的对象之间相互进行消息传递通讯的一种处理方法。譬如我发短信给你,消息的两端是我和你,而这个事件就是短信。通常情况下这个消息由一个消息处理中心统一进行处理分发,类似于邮局发信。

  常规来说,这个事件应该有两个属性,一个是发出者,一个是接收者。发出者只管发送,而接收者要负责接收并做出回应也就是处理。
  
  As3中的事件不是这样的,其消息也就是EVENT有一个属性叫target,不要混淆,对于我发送短信给你这个例子,target居然不是你,而是我,添加事件侦...
标签:as3事件机制缺陷分类:As3&Flex阅读:5008评论:10阅读全文
共20篇日志 第2/2页 上一页 首页
联系我
博客订阅