Как сделать пользовательские классы AS3 доступными для привязки данных? - PullRequest
3 голосов
/ 28 мая 2011

Предположим, у меня есть класс Actionscript.

public class myClass

{
       private var myVariable:ArrayCollection;
...
}

Предположим также, что у меня есть другой класс, который меняет вторую переменную с метаданным [Bindable]. Какие методы и события я должен реализовать в одном из этих классов, чтобы внести изменения myVariable, когда другой является changend?

1 Ответ

1 голос
/ 28 мая 2011

Если вы сделаете myVariable общедоступным, тогда вы можете просто использовать [BindingUtils.bindProperty()][1]:

public class MyClass
{
    public var myVariable:ArrayCollection;

    public function MyClass(other:OtherClass) {

        BindingUtils.bindProperty(this, "myVariable", other, "propertyName");

    }
}

Если вы предпочитаете сохранять myVariable закрытым, тогда вы можете использовать [BindingUtils.bindSetter()][2]:

public class MyClass
{
    private var myVariable:ArrayCollection;

    public function MyClass(other:OtherClass) {

        BindingUtils.bindSetter(
            function(newVal:*):void {
                this.myVariable = newVal;
            }, other, "propertyName");

    }
}
...