2010-11-19 27 views
0

Aşağıda, çok basit bir örnek var, eğer adım 2 düğmesine tıklarsam durum değişecek fakat Adım 2 paneli orada olmayacak. flex/flashbuilder 4 gumbo durumları bazen boş

ben itemCreationPolicy için "acil" olarak ayarlayın neden olan bazı nedenlerden dolayı yaratılan sakın devletin çocukları şüpheli, ama hiç fark etmez

Bu kullanıcı çünkü uygulama için felaket limboda kaldı ve yenilemek zorunda kaldı

Herhangi bir fikir, lütfen?

<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         creationPolicy="all" currentState="step1"> 
     <s:states> 
      <s:State name="step1"/> 
      <s:State name="step2"/> 
     </s:states> 
     <s:BorderContainer includeIn="step1" itemCreationPolicy="immediate"> 
      <s:Panel title="Step 1"/> 
     </s:BorderContainer> 
     <s:BorderContainer includeIn="step2" itemCreationPolicy="immediate"> 
      <s:Panel title="Step 2"/> 
     </s:BorderContainer> 
     <s:Button title="step1" click="{this.setCurrentState('step1',true)}"/> 
     <s:Button title="step2" click="{this.setCurrentState('step2',true)}"/> 
    </s:BorderContainer> 

cevap

1

Sadece Flex SDK 4.1 ile test ettim ve oluşturma ilkesini değiştirmeden çalışıyor. "2. adım" ı tıkladığınızda durumu başarıyla değiştirir.

BTW: Eğer olay işleyicisi tıklayın Sen

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" currentState="step1"> 

    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 

    <s:states> 
     <s:State name="step1"/> 
     <s:State name="step2"/> 
    </s:states> 

    <s:BorderContainer includeIn="step1"> 
     <s:Panel title="Step 1"/> 
    </s:BorderContainer> 

    <s:BorderContainer includeIn="step2"> 
     <s:Panel title="Step 2"/> 
    </s:BorderContainer> 

    <s:Button label="step1" click="setCurrentState('step1', true)"/> 
    <s:Button label="step2" click="setCurrentState('step2', true)"/> 
</s:Application> 
+0

Sorun rastgele, 20 kez çalışacak ve sonra aniden ortaya çıkacak. Uygulamayı bir saatliğine bırakıp daha sonra tekrar gelirsem daha sık görünüyor (GC?) Kıvırcık parantez ipucu için teşekkürler –

1

Flex 4 SDK eski/ön sürümünü kullandığını görünüyor ... küme parantezi gerekmez. 4.1.0'a güncellemek iyi bir fikir olabilir - son kararlı sürüm.

Not: Yazma this.setCurrentState('step1',true) en iyi fikir değildir. currentState = 'step1''u kullanmanızı öneriyorum - bu, devletin değişme şeklinin resmi yoludur.

+0

Esnek kullanıyorum 4.1.0 SetCurrentState kullanarak sorun nedir, API belgelerini öneririm o? –

+0

[belgeler] (http://livedocs.adobe.com/flex/3/html/help.html?content=using_states_3.htmldokümantasyon) şunları söylüyor: "Ayrıca, bir bileşenin görünüm durumunu setCurrentState() yöntemini kullanarak da değiştirebilirsiniz UIComponent sınıfının * Bu yöntemi kullanın * yaptığınızda * değil * iki görünüm durumu arasında tanımladığınız bir geçiş uygulamak istiyorum. " Yani çoğu durumda 'currentState = 'foo'' kullanabilirsiniz. –