كيفية إيقاف الحدث الفأذ على Flex Canvas Reting عناصر الأطفال
-
05-09-2019 - |
سؤال
أنا أستخدم 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: يمكنك أيضا التحقق مما إذا كان الهدف من الحدث هو طفل من الحاوية.