Flex:刷新TabNavigator的特定选项卡?

时间:2009-11-03 14:49:53

标签: php flex

我正在使用Tab Navigator组件,其中有三个canvas组件。当我单击其中一个画布(或制表符)时,会显示一个饼图。

实际上发生的是点击次数
1. canvas发送一个HTTPService,其url设置为php文件
那个php文件实际上从数据库中获取信息。基于该信息,创建xml文件 3. Fusion Chart使用该xml文件显示饼图

问题:
一段时间后数据库正在更新。

饼图可能会在每3分钟后更新一次以反映数据库中的修改吗?或

我可以在后台每3分钟后一次又一次地发送特定的HTTPService吗?或

有没有更好的方法来更新Tab Navigator的特定画布(或标签)中的信息?

万分感谢。 :)

更新
现在尝试在我的应用程序中设置一个计时器,但是我遇到了第二和第三行的错误:

第二行错误:
    多个标记:
     -1120访问未定义的属性Countsec
     -1120访问未定义的属性mTimer
第3行错误:
    访问未定义的属性mTimer

但是我已经在代码中定义了所有内容:

var mTimer:Timer=new Timer(1000*60*3); //3 minutes
mTimer.addEventListener(TimerEvent.TIMER,Countsec);
mTimer.start();
private function Countsec(e:TimerEvent):void
{
 charts.send(); //HTTPService's ID that needs to be sent
}

3 个答案:

答案 0 :(得分:1)

以下行需要在函数调用中,而不是仅在脚本中声明:

mTimer.addEventListener(TimerEvent.TIMER,Countsec);
mTimer.start();

你应该在初始化或creationComplete事件的函数中调用它们。

答案 1 :(得分:0)

基本上可以进行两种更新:基于计时器或基于事件。

如果您想要基于计时器,只需在应用程序启动时设置timer以定期运行更新。

如果您想要基于事件,请设置适当的UI事件处理程序以更新内容。

要访问“选项卡导航器”选项卡内容,请使用

yourTabNavigator.getChildAt(index)

其中index是您要访问的选项卡的从0开始的索引。然后,您可以添加,删除,更改其内容对象。

或者,如果您对选项卡进行硬编码,则可以为每个内容对象提供一个ID,并通过ID直接访问它们。

    <mx:TabNavigator id="tn"  width="100%" height="100%">
        <!-- Define each panel using a VBox container. -->

        <mx:VBox label="Panel 1" id="box1">
            <mx:Label text="TabNavigator container panel 1"/>
        </mx:VBox>

        <mx:VBox label="Panel 2" id="box2">
            <mx:Label text="TabNavigator container panel 2"/>
        </mx:VBox>

        <mx:VBox label="Panel 3" id="box3">
            <mx:Label text="TabNavigator container panel 3"/>
        </mx:VBox>
    </mx:TabNavigator>

然后,您可以将其作为“box1”等访问。

答案 2 :(得分:0)

尝试将“Countsec”功能更改为公开而非私有。

此外,您可以在计时器长度(1000 * 60 * 3,0)之后添加重复计数参数。 0为无穷大,或将其设置为特定计数。

您可以做的最后一件事是直接调用常量而不是TimerEvent.TIMER。请改用“计时器”。 “mTimer.addEventListener(” 计时器 “Countsec);”