0

当值发生变化时(即当用户登录时),我试图在空中应用程序中触发事件(函数),但到目前为止我还没有成功触发我的函数......

我有以下代码:

一个用户类:

[Bindable]
public class User
{
    private var m_rssLink:String;

    public function get rssLink():String{
        return m_rssLink;
    }

    public function set rssLink(value:String):void{
        m_rssLink = value;
    }
}

用户登录并定义用户的带有 id 标头的标头组件:

<fx:Declarations>
    <user:User id="user" />
</fx:Declarations>

最后是带有动作脚本的 mxml 代码:

private var loginWatcher:ChangeWatcher;

protected function creationCompleteHandler(event:FlexEvent):void
{
    this.loginWatcher = ChangeWatcher.watch(header.user, ["rssLink"], sendRequest);
}

到目前为止,我已经尝试以多种方式触发 sendRequest 函数(使用 [bindable (event="")],使用 bindsetter,...),到目前为止,Google 没有给我带来其他选择。

任何人都看到我的代码失败的地方,或者知道更好的方法来实现这一点?

4

1 回答 1

1

好吧,您已经为 User 创建了一个 setter 属性。使用它来跟踪用户状态。

public function set rssLink(value:String):void{
    if (m_rsslink==value) return;
    m_rssLink = value;
    dispatchEvent(...); // use correct event(s) for certain values, then catch 
    // them in your watcher class. Use FlexEvents if you want.
}
于 2012-11-30T11:11:25.633 回答