سؤال

في تطبيق Flex Air، كيف تفتح نافذة خلف واحدة نشطة؟

حاولت التتبع ولا أستطيع أن أحصل عليه للعمل

giveacodicetagpre.

مع هذا الرمز، أتوقع فتح النافذة 1 خلف نافذة التطبيق الرئيسية، وفي 3 ثوان، سيفتح Window2 خلف Window1.ولكن إذا قمت بتنفيذ هذا، فسيتم فتح النافذة 1 على رأس النافذة الرئيسية وسيتم فتح Window2 على رأس النافذة 1 وسيتم الاحتفاظ بالتطبيق الرئيسي التركيز.هذا يبدو وكأنه خطأ في المرن.إذا كان الأمر كذلك هل هناك أي حلوة لهذه المشكلة؟

لا يوجد حل صحيح

نصائح أخرى

لذلك يبدو أن هناك طريقة جيدة لحل هذه المشكلة. سيكون الحل البديل هو إضافة مستمع الأحداث لشركة Airevent.window_complete ونقل النافذة في معالج الأحداث. يبدو هذا مثل الحل البديل "الصحيح" ويعمل لحالة بسيطة مثل مثالتي الأصلية. المشكلة هي أن هذا النهج لم يعمل على التعليمات البرمجية الخاصة بي.

إذا نظرت إلى SPARP.COMPONELS.Window رمز من SDK، سترى أن مستمع حدث لحدث حدث. يتم إضافة enter_frame عند فتح النافذة (في الالتزام ()). ثم في معالج الأحداث، EnterframeHandler ()، فإنه يحتفظ بعداد، والإطار الثاني، وإرسال airevent.window_complete. هذا يجعلني أعتقد أن حدث airevent.window_complete النار على الإطار الثاني بغض النظر عن حالة النافذة على الرغم من أن LIVEDOC يقول:

أرسلت عند إكمال النافذة تخطيطها الأولي ويفتح NativeWindow .

أنا أظن أن نافذتي لم تكن ممتلئة بواسطة الإطار الثاني وبالتالي فشل طلب الطلبات.


حتى هنا الحل الحل الخاص بي:

أولا، في نافذتي، أتجاوز فتح (OpenWindowActive). إذا كان OpenWindowActive FALSE، أقوم بإضافة مستمع حدث للحدث. enter_frame. في معالج الأحداث، أحتفظ بمكافحة وعندما يصل عدد الإطار إلى عدد معين (10 الآن)، أقوم بنقل النافذة الحالية وراء النشطة النشطة. هذه طريقة اختراق جدا لتحويل هذه المشكلة. لقد قمت بزيادة الحد والآن نجحت حوالي 90٪ من الوقت. يمكنني الاستمرار في زيادة الحد الأقصى حتى أحصل على ما يقرب من 100٪ لكنني أكره الحاجة إلى التحقق من هذه الحالة في كل مرة أقوم فيها بأي تغييرات على النافذة. أيضا هذه الحالة قد تكون مختلفة اعتمادا على الجهاز.

أحب ذلك إذا كان شخص ما يمكن أن يقول لي كيف خاطئ الحلول بلدي ويخبرني وسيلة أفضل بكثير لحل مشكلتي ... ولكن حتى ذلك الحين سوف تضطر إلى القيام بذلك ...

هل هناك سبب معين تقوم بإعداد معلمة UseWeakReference إلى True؟ خلاف ذلك، يجب أن تكون قادرا على الاتصال فقط:

giveacodicetagpre.

ومع ذلك، هناك خطأ في هذا السطر من التعليمات البرمجية. يتم إطلاق الحدث Timer_complete عند الانتهاء من كل دوراتها. لقد قمت بتعيين الموقت الخاص بك ل "النار" بلا حدود. لذلك لن يكملها دوراتها.

تحتاج إلى تعديل هذا السطر من التعليمات البرمجية وما يلي ويجب عليك الحصول على النتائج المتوقعة الخاصة بك:

giveacodicetagpre.




لمعالجة سؤالك الثاني (لماذا لا يظهر النافذة 1 خلف التطبيق). الحكم على قيمة العودة وظيفة الطلب:

giveacodicetagpre.

يبدو أن الطلب يفشل إذا كانت النافذة غير مرئية. قد يكون الأمر كذلك، من خلال وجود رمز في معالج CreationComplete، يمكنك استدعاء هذه الوظيفة قبل أن تحتوي نافذة التطبيق على فرصة لعرض نفسها. حاول نقل هذا الرمز داخل وظيفة OpenWindow2 الخاصة بك، كذلك. yeilding:

giveacodicetagpre.

آمل أن يساعد هذا بطريقة ما،

  • gmale

تحرير: لكل تعليقي الأخير، جرب هذا،

giveacodicetagpre.

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