سؤال

مرحبا الجميع مشكلتي اليوم لدي بضعة أزرار تلك الشريحة صعودا وهبوطا ، عندما في الدولة إضافة X الرسم رمزا زر إغلاق.ومع ذلك X الرسم يبدو أن تحجب عمل زر.

alt text
(المصدر: flickr.com)

لدي مثال في الفيلم لقد تم العمل على >> هنا <<.هناك 2 أفلام هنا, واحدة كبيرة إذا كنت انقر فوق علامة التبويب الأزرق سوف نرى ما الذي أتحدث عنه ، زر X يظهر ولكن النقر فوق X منطقة لا تسقط على زر أسفل.يجب عليك النقر فوق الزر الأزرق منطقة لإسقاط زر أسفل الظهر.

الآن لقد قدم أصغر اختبار الفيلم إضافة زر X في الأساس بنفس الطريقة إذا كنت سوف تلاحظ أنه يعمل بشكل جيد (تحريك إلى اليمين حتى إذا كنت انقر على X الرسم)

هنا هو بلدي رمز في الفيلم الكبير (خبأت توين رمز لذلك لن يكون طويلا):

function handleButtonClick(event:MouseEvent):void {
var button:MovieClip=event.target as MovieClip;
var id:Number=Number(button.name.split("button")[1]);

dispatchEvent(new CustomEvent(CustomEvent.PAUSE_MOVIE, {}));

if (! $btn1&&! $btn2) {
    if (storeButton2==buttons[id]) {
        closeTabX.x = buttons[1].width - (closeTabX.width + 10);
        closeTabX.y=buttons[1].height/2-15;
        buttons[1].addChild(closeTabX); // X added here
        $btn2=true;
        $btn1=false;
    } else if (storeButton1 == buttons[id]) {
        closeTabX.x = buttons[0].width - (closeTabX.width + 10);
        closeTabX.y=buttons[0].height/2-15;
        buttons[0].addChild(closeTabX); // X added here
        $btn1=true;
        $btn2=false;
    }
} else if ($btn1 && !$btn2) {
    if (storeButton2==buttons[id]) {
        buttons[0].removeChild(closeTabX); // X removed here
        buttons[1].addChild(closeTabX); // X added here
        $btn2=true;
        $btn1=false;
    } else if (storeButton1 == buttons[id]) {
        buttons[0].removeChild(closeTabX); // X removed here
        $btn1=false;
    }
} else if ($btn2 && !$btn1) {
    if (storeButton2==buttons[id]) {
        buttons[1].removeChild(closeTabX);
        $btn2=false;
    } else if (storeButton1 == buttons[id]) {
        buttons[1].removeChild(closeTabX); // X removed here
        buttons[0].addChild(closeTabX); // X added here
        $btn1=true;
        $btn2=false;
    }
}

}

الآن هنا هو رمز في بلدي الأساسية اختبار الفيلم:

var blueButton:MovieClip;
var closeBtnX:MovieClip;

blueButton = new BlueButton;
blueButton.buttonMode = true;

closeBtnX = new CloseTabX;
closeBtnX.x = blueButton.width/2 - closeBtnX.width;

addChild(blueButton);


blueButton.addEventListener(MouseEvent.MOUSE_UP, specialClick);

function specialClick(event:MouseEvent):void
{
  blueButton.addChild(closeBtnX); // X added here
  blueButton.x = blueButton.x+10;
}

أنا لا أفهم لماذا لا يمكنك انقر على X في المثال الرئيسي لإغلاق التبويب ، ولكن يمكنك في بلدي الصغير الأساسية الفيلم ؟ أفكار, أفكار ؟

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

المحلول

لم بعد كم أنت إنشاء 'closeTabX' في المثال الأول ، هو نفس فئة أصغر سبيل المثال(CloseTabX)?

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

closeTabX.mouseEnabled = false;
closeTabX.mouseChildren = false;

إذا كان هذا الفصل هو لم يقصد أن يكون الماوس الهدف ، يمكن أيضا تعيين هذه الخصائص في منشئ الفئة لمنع أي حالات من تلك الفئة من حجب أحداث الماوس.

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