كيفية إيقاف الحدث الفأذ على Flex Canvas Reting عناصر الأطفال

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

سؤال

أنا أستخدم ItemRenderer Canvas لحاوية أستخدمها لعرض الصور. انظر رمز الزائفة أدناه.

image = new Image();
image.source = data.@thumb;
this.addChild(image);
this.addEventListener(MouseEvent.MOUSE_OVER, enlarge(image));
this.addEventListener(MouseEvent.MOUSE_OUT, shrink(image)); 

عندما أكون الماوس فوق القماش، يتم استدعاء وظيفة التكبير. ولكن بمجرد نقل الماوس على الصورة، أو عنصر طفل آخر، يتم إطلاق الحدث Mouse_out.

هل يمكن لأي شخص أن يشيرني إلى اتجاه طريقة لتعطيل هذا السلوك؟

شكرا :)

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

المحلول

يجب عليك استخدامها MouseEvent.ROLL_OVER و MouseEvent.ROLL_OUT الأحداث بدلا من ذلك.

من وثائق فلاش CS4:

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

نصائح أخرى

وأنا أتفق مع جوش أن ROLL_OVER الأحداث تبدو أكثر ملاءمة بما تفعله. ومع ذلك، يجب أن تكون على علم mouseChildren ممتلكات flash.display.DisplayObjectContainer (سلف UIComponent).

المطعم يعمل بالنسبة لي. حول مشكلة combobox: يمكنك أيضا التحقق مما إذا كان الهدف من الحدث هو طفل من الحاوية.

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