Flex 3 Error #2025 عند استخدام RemoveChild
-
28-09-2019 - |
سؤال
أحصل على Flex PresumentError: خطأ #2025: يجب أن يكون DisplayObject الذي تم توفيره طفلًا للمتصل.
هذا ما لدي:
أ) قمت بتعيين المتغير LastButtonclicked على الزر الأخير الذي تم النقر عليه في التطبيق الرئيسي.
private var lastButtonClicked:DisplayObject;
private function lastButtonClickedFunction(event:MouseEvent):void {
lastButtonClicked = event.currentTarget as DisplayObject;
}
ب) لدي عنوان OpenWindow وهناك خيار نعم/لا. لدي حدث مخصص لإرجاع الإجابة على التطبيق الرئيسي.
ج) في التطبيق الرئيسي ، أحاول إزالة LastButtonclicked بناءً على البيانات التي أرسلها الحدث المخصص. لذلك ، مشكلتي في هذه الوظيفة. لسبب ما لن يسمح لي بإزالة الزر. أحصل على خطأ 2025 بدلاً من ذلك.
private function answerHandler( event:AnswerEvent ):void {
if(event.answerCorrect == true){
removeChild(lastButtonClicked);
}
}
أي اقتراحات حول كيفية تصحيح هذه المشكلة؟ الحدث المخصص يطلق النار بشكل جيد. كيف يمكنني إصلاح هذا الخط: removeChild (lastButtoncked) ؛ ؟
تحرير: لقد جربت hbox1.removechild (LastButtoncked) وعملت. تمت إزالة الزر المناسب من التطبيق الرئيسي. المشكلة هي أنه ليس كل الأزرار في Hbox1. لقد حصلت على hoboxes أخرى. لذلك ، أحتاج إلى اكتشاف طريقة أكثر عامة بدلاً من استخدام HObboS1 في العبارة. لقد تعبت من هذا. Removechild (LastButtoncked) ، لكنه لم ينجح. شكرًا لك.
شكرًا لك.
-laxmidi
المحلول 2
لقد حلتها. لقد صنعت متغيرًا ووضعته على الوالد في LastButtoncked.
خاص var myparent: كائن ؛ myParent = lastButtonclicked.parent ؛
ثم في إجابتي كتبت:
myparent.removechild (lastButtoncked) ؛
شكرًا لك.
-laxmidi
نصائح أخرى
من ما أفهمه ، يبدو أن لديك الأزرار في أ TitleWindow
ومعالج الحدث في التطبيق. ربما تريد الاتصال removeChild
لصالح TitleWindow
(على سبيل المثال: titleWindow.removeChild(lastButtonClicked)
) بدلا من من التطبيق.