标签归档:AS3

二次贝塞尔曲线实例

实在抱歉,是二次贝塞尔曲线,不是一次杯赛儿曲线。o(╯□╰)o
鼠标拖动划线,然后拖动变成曲线

这是一个贝塞尔曲线bezierLine的演示demo,如果你看不到这个flash,请到文章页面查看!

继续阅读 →

AS3 条件编译

本文翻译至:http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html
知道C/C++ 有条件编译,一直想着AS要是也有条件编译就好了,今天搜了半天Google,终于让我找到了。
下面翻译livedocs.adobe.com上一篇文章,英文不怎么好,有些是Google翻译的,然后我再纠正下语句,大家不要见怪。
继续阅读 →

TextField.restrict 文本输入限制详解

重新添加了swf演示.

这是一个textField_restrict的演示demo,如果你看不到这个flash,请到文章页面查看!

继续阅读 →

获取MovieClip跳帧后的子元件

MC(MovieClip)在做动画播放的时候是很方便的,只要在Flash IDE里画好就能直接播放了,但是如果想要在动画播放的过程中,让其他的元件做一些运行时才能确定的事,那么只是在Flash IDE里画就不能实现了,这时就需要使用AS代码来实现了.

代码实现以上功能基本上有3种实现方式:

继续阅读 →

dispatchEvent

有时,有些模块化的东西,要发送事件,如果当然没人侦听它,它却去发送事件不是有点浪费。
有个折中的办法,感谢 tttt 提醒用 willTrigger,willTrigger才能检测事件流里是否有注册相应事件。

注意:不要乱用,因为当事件流的层次多时,willTrigger消耗的时间是dispatchEvent的一多半!

override public function dispatchEvent(event:Event):void
{
    if (willTrigger(event.type))
    {
        super.dispatchEvent(event);
    }
}

NumberText

这时一个数字输入框,优化过的请看 重写NumberText为NumTextField 。

下面这个为老版本,不建议使用。

这是一个AS写的仅能输入数值的文本效果,如果你看不到这个flash,请到文章页面查看!

AS 对象 深度复制

对象赋值分浅复制和深复制,Array.concat就属于浅复制。
浅复制:将实例及子实例的所有成员(属性,静态的除外)都复制一遍。
深复制:将实例及子实例的所有成员(属性, 静态的除外)都复制一遍,(引用要重新分配空间!)

AS3里没有深复制,就写了个深复制的工具类ObjectUtil.as。
AS3里矢量的显示对象不能被复制,所以这里的ObjectUtil也不能复制显示对象。

ObjectUtil的局限性:

  1. 不能对显示对象进行复制
  2. obj的必须有默认构造函数(参数个数为0,或都有默认值)
  3. obj 里有obj类型 之外 的非内置数据类型时, 返回类型将不确定

ObjectUtil源码