דף הבית > כללי > באג: MouseEvent.Mouse_UP זורק שגיאה בקומפוננטות scrollable

באג: MouseEvent.Mouse_UP זורק שגיאה בקומפוננטות scrollable

באג:

כאשר מסירים דינאמית קומפוננטה scrollable כאשר המשתמש עדיין נמצע בפעולת scroll (העכבר לחוץ), ברגע שהמשתמש ישחרר את העכבר תזרק הודעת השגיאה הבאה:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at fl.controls::ScrollBar/thumbReleaseHandler()

הסיבה

כאשר המשתמש לוחץ על עכבר בקומפוננטה שהיא scrollable, מופעלת האזנה ל-MouseEvent.MOUSE_UP על מנת לשחרר את הקומפוננטה ברגע שחרור העכבר. הבעיה במקרה זה, שהאובייקט לו מאזינים הוא ה-stage, וכאשר מתרחש ה-event, הוא משתחרר על ידי ה-callback באופן הבא:

stage.removeEventListener(MouseEvent.MOUSE_UP,thumbReleaseHandler);

אולם כאשר מסירים את האובייקט מהבמה, אובייקט ה-stage אינו קיים יותר ולכן הקריאה נופלת.

בנוסף, לא ניתן להשתמש ב-try/catch על מנת שהשגיאה לא תופיע אצל ה-client מכיוון שהאובייקט הוא קומפוננטה גנרית של Flash.

פתרון אפשרי

workaround שעובד במקרה הזה הוא לזרוק event מהקומפוננטה של MouseEvent.Mouse_UP על מנת לבטל את ההאזנה ל-event אחרי שנעלם האובייקט.

comboBox.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));
comboBox.close();

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:
  1. אין תגובות עדיין.
  1. אין הפניות עדיין.