我有一个接口IBaseInterface
和一个类BaseClass
。
BaseClass
当我通过类型引用时,IBaseInterface
带有事件名称的绑定不会触发。但是,正常绑定(没有事件名称)会触发。
如果我指的是BaseClass
withObject
或BaseClass
types 一切都可以,并且绑定会触发。
IBase接口:
[Event(name="propTwoChanged", type="flash.events.Event")]
[Event(name="propThreeChanged", type="flash.events.Event")]
[Bindable]
public interface IBaseInterface extends IEventDispatcher{
function get propOne() :Number;
function set propOne(value:Number) :void;
[Bindable(event="propTwoChanged")]
function get propTwo() :Number;
[Bindable(event="propThreeChanged")]
function get propThree() :Number;
}
基类:
[Event(name="propTwoChanged", type="flash.events.Event")]
[Event(name="propThreeChanged", type="flash.events.Event")]
[Bindable]
public class BaseClass extends EventDispatcher implements IBaseInterface{
private var _propOne:Number = 0;
public function get propOne() :Number{
return _propOne;
}
public function set propOne(value:Number) :void{
_propOne = value;
dispatchEvent(new Event('propTwoChanged'));
dispatchEvent(new Event('propThreeChanged'));
}
[Bindable(event="propTwoChanged")]
public function get propTwo() :Number{
return propOne * 2;
}
[Bindable(event="propThreeChanged")]
public function get propThree() :Number{
return propOne / 2;
}
}
因此,为了澄清问题:
propTwo
并且propThree
绑定IBaseInterface
不会触发。propOne
绑定没问题,这没有事件名称。- 只有通过接口访问时才会出现问题,其他类型都可以。