当前位置:  开发笔记 > 编程语言 > 正文

收听Actionscript中Object对象的任何更改

如何解决《收听Actionscript中Object对象的任何更改》经验,为你挑选了1个好方法。

我在actionscript中有一个Object,它有几十个属性,每个属性都被定义为可绑定并且有自己的change事件.我想听取对该对象所做的任何更改,而无需为其所有属性添加侦听器.在actionscript中是否有一种方法可以用来监听对象值的任何变化?

谢谢



1> daniel.reich..:

您可以在[Bindable]类上使用PropertyChangeEvent来侦听任何属性更改.只要您使用get/set属性.

package
{

    [Bindable]
    public class Person
    {
        private var _firstName:String;
        private var _lastName:String;
        private var _age:Number;

        public function get firstName():String
        {
            return _firstName;
        }

        public function set firstName(value:String):void
        {
            _firstName = value;
        }

        public function get lastName():String
        {
            return _lastName;
        }

        public function set lastName(value:String):void
        {
            _lastName = value;
        }

        public function get age():Number
        {
            return _age;
        }

        public function set age(value:Number):void
        {
            age = value;
        }

        public function Person()
        {
            // empty constructor
        }

    }
}

然后,在您的using类中添加事件侦听器.

        public var p:Person;

        private function addListener():void
        {
            p = new Person();
            p.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, onPropertyChange);
        }

        private function onPropertyChange(event:PropertyChangeEvent):void
        {
            trace(event.property + " " + event.kind + " " + event.oldValue + " " + event.newValue);
        }

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有