سؤال

لدي مطلب في مشروعي الحالي (تطبيق Flex الذي سيتم تشغيله في Flash player) لعرض مجموعة فرعية عشوائية من المكونات في نموذج مع إخفاء جميع المكونات الأخرى بناءً على جوانب معينة من حالة التطبيق.هناك حوالي عشرة مربعات نصية وقوائم منسدلة مختلفة، لكن بعضها يصبح غير ذي صلة بناءً على بيانات المستخدم التي تم إدخالها مسبقًا ولا نريد عرضها عندما نصل إلى هذا النموذج المحدد.في كل مرة يتم عرض هذا النموذج، قد أحتاج إلى إظهار أي من التباديل العديدة لهذه المكونات.

أحاول أن أقرر ما هي أفضل طريقة للتعامل مع هذه المشكلة.هل يجب أن أقوم بإنشاء لوحة قماشية (أو حاوية أخرى) تحتوي على كافة عناصر التحكم المطلوبة ثم أقوم فقط بتعيين visual = false على العناصر التي لا أحتاج إليها؟تصبح المشكلة بعد ذلك التأكد من أن التصميم يبدو لائقًا.لا أريد أن تكون هناك فجوات حيث كانت الضوابط المخفية موجودة.

الخيار الآخر الذي فكرت فيه هو مجرد وجود آلية يمكنها إنشاء مثيل TextInput أو CheckBox وما إلى ذلك ديناميكيًا.المكون ثم اتصل بـ Container.addChild(control) من أجل بناء المكونات ولا داعي للقلق بشأن مشكلة الفجوة.

يبدو أن هذه مشكلة لها حل اصطلاحي في المرن، لكني لا أعرف ما هو.لا تبدو أي من هذه الأفكار رائعة، لذا أتساءل عما إذا كان لدى أي شخص آخر فكرة أفضل.

هل كانت مفيدة؟

المحلول

وأنا لا أعرف إذا كان هذا هو حل جيد أم لا، ولكن عندما كنت في بالضبط نفس الوضع، لم أكن أساسا الأسلوب الأول. تعيين visible = false وأيضا تعيين includeInLayout = false لمنع هذه "الثغرات" كنت تتحدث عن. انها حل بسيط جدا، من السهل جدا وسريعة لتنفيذ ... ربما شخص آخر يعرف شيء أكثر اصطلاحي بالرغم من ذلك.

نصائح أخرى

وأفضل طريقة ممارسة للقيام بذلك هو استخدام الدول. على سبيل المثال:

<mx:states>
    <mx:State name="State1">
        <mx:AddChild position="lastChild">
            <components.../>
        </mx:AddChild>
    </mx:State>
    <mx:State name="State2">
        <mx:AddChild position="lastChild">
            <mx:Canvas.../>
        </mx:AddChild>
        <mx:AddChild position="lastChild">
            <mx:VBox.../>
        </mx:AddChild>
    </mx:State>
</mx:states>

وبعد ذلك ضمن التعليمات البرمجية الخاصة بك، يمكنك استدعاء this.currentState = "State1" لتمكين الدولة الأولى وما إلى ذلك عن طريق الدول، يمكن أن تظهر بشكل انتقائي وإخفاء المكونات.

وأوصي غوغلينغ عن الدروس الدول المرن ومحاولة بعض من الحصول على فكرة المناسبة لكيفية عمل الدول.

إذا لم تفعل الحالات ذلك، فاطلع على المقالات التي تشرح دورة حياة المكونات.

إذا قمت بإنشاء فئة تعمل على توسيع مكون مرن مثل Canvas، فسوف تحدد جميع المكونات في وظيفة تتجاوز createChildren.ستتم إعادة زيارة التخطيط في وظيفة أخرى تتجاوز UpdateDisplayList

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top