NativeMenu ContextMenuEvent

2009年8月18日 1 条评论

今天群里朋友问,A B C D多个显示对象有同一个NativeMenu菜单,怎么知道是哪个显示对象弹出的菜单?
首先想到的是NativeMenu有Event.DISPLAYING事件,可是具体是哪个显示对象就不好弄了,
然后想,如果只是相同的菜单显示,而用不同的NativeMenu可以用闭包函数实现,O(∩_∩)O~
可是那位朋友说用闭包不适合的,o(╯□╰)o
又有朋友说用ContextMenuEvent.MENU_SELECT试试,我想NativeMenu没有ContextMenuEvent事件的,怎么能用呢。
先试下再说了, 没想到果然ok的,郁闷了,API上说NativeMenu没有ContextMenuEvent事件的啊, 莫非我的API有误?describeType 看下,晕倒,也没ContextMenuEvent事件的。
然后测试NativeWidow.menu,不会触发ContextMenuEvent事件,
然后猜想,可能InteractiveObject的contextMenu会自动添加ContextMenuEvent.MENU_SELET事件。

结论:InteractiveObject的contextMenu会自动添加ContextMenuEvent.MENU_SELET事件,而不管是不是ContextMenu

下面是测试代码:
阅读全文...

TextField.restrict 文本输入限制详解

2009年8月17日 1 条评论

重新添加了swf演示.

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

阅读全文...

Vector.unshift bug已修复

2009年8月7日 1 条评论
package  
{
    import flash.display.Sprite;
    import flash.system.Capabilities;

    /**
     * www.litefeel.com
     * lite3@qq.com
     * @author lite3
     */
    public class VectorTest extends Sprite
    {

        private var list:Vector.<MyClass> = new Vector.<MyClass>();

        public function VectorTest() 
        {
            trace(Capabilities.version);
            var n:int = 3;
            while (n--)
            {
                //list.length++;
                list.unshift(new MyClass());
                trace(list);
            }
        }

    }

}
class MyClass{}

输出:

WIN 10,0,22,87
[object MyClass]
[object MyClass],[object MyClass]
[object MyClass],[object MyClass],[object MyClass]
标签: , , ,

dispatchEvent

2009年7月29日 2 条评论

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

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

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

Function 指定thisObj

2009年6月11日 1 条评论

函数里可以使用this关键字,可以很方便的引用一个对象。

一般函数的 this 可以通过function.applyfunction.call来修改this指向的对象。
不过在作为类的固有方法(类成员方法),则不能改变this对象。
阅读全文...

标签: , , , ,

在XMLList里插入节点

2009年6月7日 1 条评论
var xml:XML = new XML(  <data>
                            <user>
                                <user id="1"/>
                                <user id="2"/>
                            </user>
                        </data> );

var xmlList:XMLList = xml.user.user;
var myXML:XML = new XML(<user id="3"/>);
insertXML(xmlList, myXML);
trace("-------- xmlList -----------");
trace(xmlList);
trace("---------- xml -------------");
trace(xml);

function insertXML(xmlList:XMLList, xml:XML):void
{
    // 修改xmlList,建议用这个
    xmlList[xmlList.length()] = xml;
    // 不修改xmlList 
    //xmlList.parent().appendChild(xml);
}
标签: , , , ,
回到顶部