Flex: Bir TabNavigator belirli bir sekme Refresh?

3 Cevap php

Ben üç tuval bileşenleri var olan bir sekme Navigator bileşeni kullanıyorum. I tuval birini (ya da sekmesini) tıkladığınızda, Pie Chart görüntülenir.

Actually what happens is that on-click
1. the canvas sends an HTTPService whose url is set to a php file
2. That php file actually gets information from a database. Based on that information an xml file is created
3. Fusion Chart uses that xml file to display a pie chart

Problem:
The database is being updated after some time.

Veritabanındaki değişiklikleri yansıtmak için her 3 dakika sonra Pie Chart güncellenmiş olsun herhangi bir yolu var mı? veya

I 'arka plan' her 3 dakika sonra tekrar ve tekrar belirli HTTPService gönderebilir miyim? veya

Sekme Navigator, belirli bir tuval (veya sekmesi) bilgileri güncellemek için iyi bir yolu var mı?

Thanks a million. :)

Update:
Trying to setup a timer now in my application but i am getting following errors against 2nd and 3rd line:

2nd line error:
Multiple markers:
-1120 Access of undefined property Countsec
-1120 Access of undefined property mTimer
3rd line error:
Access of undefined property mTimer

Ama kodda, aşağıda gösterildiği gibi, her tanımlanmış:

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 Cevap

Aşağıdaki satırlar, bir işlev çağrısı ve sadece komut beyan edilmemiş olması gerekir:

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

Muhtemelen initialize veya creationComplete olaylar bir işlevi onları aramak gerekir.

Zamanlayıcı tabanlı veya olay tabanlı: yapabileceğini güncelleme iki çeşit temelde vardır.

Eğer zamanlayıcı tabanlı yapmak istiyorsanız, sadece periyodik güncelleştirmeyi çalıştırmak için uygulama başlangıçta bir timer kurmak.

Eğer olay-tabanlı yapmak istiyorsanız, içeriğini güncellemek için uygun UI olay işleyicisi kurmak.

Sekme Navigator sekme içeriğine erişmek için, kullanmak

yourTabNavigator.getChildAt(index)

index sekmesinin 0-tabanlı dizin nerede erişmek istiyor. Daha sonra, eklemek, kaldırmak, onun içerik nesneleri değiştirebilirsiniz.

Eğer sekmeleri kodlamalısınız Alternatif olarak, sadece her bir içerik nesne bir kimlik verebilir ve kimliği doğrudan erişebilirsiniz.

    <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>

Daha sonra vb "BOX1" olarak erişebilir

Yerine özel kamu için "Countsec" fonksiyonunu değiştirmeyi deneyin.

Ayrıca, zamanlayıcı uzunluğunun (* 3 * 60 1000, 0) sonra, tekrar sayımı için bir argüman ekleyebilirsiniz. 0 sonsuz, veya belirli bir sayısı için ayarlanır.

Yapabileceğiniz tek şey, son yerine doğrudan TimerEvent.TIMER sabitini aramak. Yerine "zamanlayıcı" kullanın. "MTimer.addEventListener (" zamanlayıcı ", Countsec);"