利用Microsoft Forms 2.0 ListBox实现多列显示

最近用Director Mx 2004做一个项目,其中一个模块要求摹拟DataGrid的界面和功能。一个同事用文本域实现了基本的功能,可是很复杂,而且界面不太像。我第一想到的是用Microsoft Forms 2.0 ListBox控件。但是怎么实现呢?我查阅了大量资料,终于搞定,特在此与大家分享我的经验。

  1. Director中可以用on beginSprite事件来动态初始化ActiveX控件,但改变其属性,一般要用on enterFrame事件,而且要用帧脚本,这样才能保证初始化时只执行一次代码
  2. Director在访问ActiveX控件的底层属性(不在“Properties”选项卡而在“CallString”选项卡中的 属性)时,用CallString方法,CallString的参数为一个字符串命令。
  3. ListBox(列表框)很特殊,必须先用AddItem方法添加第一列数据,然后才能用List或Column属性设置其它列的数据,这一点特别要留意。
  4. 如果用 MultiSelect 属性创建一个允许多重选择的ListBox,那么ListBox的Selected属性(而不是ListIndex属性)将标识被选中的行。

我是三年后又用Director,知道的就这么多了,说错的地方请大家指教。

点击此处下载源文件。

设置TextArea的内容为不能被选择

Flash中如何设置TextArea的内容为不能被选择?今天有人在论坛上问到这个问题,我一开始看成设置TextArea的内容为不能编辑了。之后查看了Flash安装目录下的TextArea.as类,终于找到了解决方法。

function onFocusIn(evtObj:Object){ 
    evtObj.target.label.selectable = false; 
} 
TextAreaInstanceName.addEventListener("focusIn",onFocusIn);

一个完整的TextArea组件是由一个TextFiled加上一个UIScrollBar组件构成的,TextArea中的内容是用它TextFiled组件渲染出来的,当内容太多TextFiled组件装不下去时,就用其List组件添加滑条。使用TextAreaInstanceName.label会返回该TextArea组件实例的TextFiled组件实例,然后设定TextFiled组件实例的selectable属性值为false,TextArea中的内容就不能选择了。

不明白之处,请参看源文件

Flash Remoting ActionScript 3.0简介

自从使用Fluorine实现Flex与.NET通信发表后,有不少网友给我来信,想知道怎样利用使用Fluorine实现Flash CS3与.NET通信。因为我近来工作忙,虽安装Flash CS3已经好长时间了,却一直没写这篇教程,请支持本站的网友多多包涵!

Flash Remoting ActionScript 3.0是我个人提出的,主要是相对于Flash Remoting ActionScript 1.0&2.0,核心技术为:ActionScript 3.0 + AFM3 /AFM0。 继续阅读Flash Remoting ActionScript 3.0简介

ActionScript 3.0基础——Point 对象

高中时几何和物理学得不好,老是记不住一些公式,因此做Flash游戏就头大。现在好了,ActionScript 3.0中的flash.geom 包中包含了用于定义几何对象(如点、矩形和转换矩阵)的类,以后做Flash游戏就方便多了。

Point 对象定义一对笛卡尔坐标。它表示二维坐标系中的某个位置。其中x表示水平轴,y 表示垂直轴。 继续阅读ActionScript 3.0基础——Point 对象