engumentError: خطأ #2025: يجب أن يكون DisplayObject المتوفر طفلًا لخطأ المتصل - كما

StackOverflow https://stackoverflow.com/questions/2492036

سؤال

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

public function closeContent(e:MouseEvent):void { 
    removeChild(txt);
    removeChild(ldr.content);
    removeChild(_closeButton);
    container_mc.visible = false;
    statusText.text="";
    if (contains(submitButton)) {
        removeChild(submitButton);
    }
    if (contains(saveinfoButton)) {
        removeChild(saveinfoButton);
    }
}

حاولت التغيير stage مع this و root لكن احصل دائمًا على هذا الخطأ ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller

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

المحلول

يشير الخطأ إلى أنك تحاول إزالة ملف DisplayObject مع removeChild يبدو أن هذا ليس طفلًا DisplayObjectContainer يتم تنفيذ هذا الرمز من.

تتمثل إحدى طرق حل هذه المشكلة في التحقق مما إذا كان الكائن الذي تحاول إزالته هو في الواقع طفل للحاوية باستخدام contains. أنت تفعل هذا لبعض الكائنات التي تقوم بإزالتها (submitButton و saveinfoButton) ، ولكن ليس لبعض الآخرين.

حاول لف removeChild يتصل من أجل txt, ldr.content و _closeButton في إذا كانت البيانات التي تستخدم contains للتحقق مما إذا كانت هذه DisplayObjectS في الحاوية.

نصائح أخرى

محاولة مع:

e.currentTarget.parent.removeChild(txt);  
e.currentTarget.parent.removeChild(ldr.content)  
etc.

جرب هذا:

public function closeContent(e:MouseEvent):void { 
    removeChild(txt);
    removeChild(ldr.content);
    removeChild(_closeButton);
    container_mc.visible = false;
    statusText.text="";
    if (contains(submitButton)) {
        removeChild(submitButton);
        removeChild(saveinfoButton);
    }
}

قد تكون قادرًا على إضافة كلا العنصرين للإزالة في الشرطية مع &&:

    if (contains(submitButton && saveinfoButton)) {
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top