Flex/Flashbuilder 4 حالات Gumbo فارغة في بعض الأحيان
-
26-09-2019 - |
سؤال
فيما يلي مثال بسيط للغاية ، بشكل عشوائي ، إذا قمت بالنقر فوق الزر Step2 ، فسيتغير الحالة لكن لوحة الخطوة 2 لن تكون موجودة.
أظن أن أطفال الدولة لا يتم إنشاؤهم لسبب ما ، ولهذا السبب قمت بتعيين عنصر العنصر على "فوري" ، لكنه لا يوجد فرق
هذا كارثي للتطبيق لأن المستخدم يترك في طي النسيان ويجبر على التحديث
أي أفكار ، من فضلك؟
<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>
المحلول
لقد اختبرته للتو باستخدام Flex SDK 4.1 وهو يعمل دون تغيير سياسة الإنشاء. النقر فوق "الخطوة 2" يغير الدولة بنجاح.
راجع للشغل: لا تحتاج إلى أقواس مجعد فيك انقر فوق معالج الأحداث ...
<?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>
نصائح أخرى
يبدو أنك تستخدم نسخة قديمة / ما قبل الإصدار من Flex 4 SDK. قد تكون فكرة جيدة التحديث إلى 4.1.0 - آخر نسخة مستقرة.
ملاحظة: الكتابة this.setCurrentState('step1',true)
ليست أفضل فكرة. أقترح استخدام currentState = 'step1'
- إنها الطريقة الرسمية لتغيير الدولة.