سؤال

لدي مكون شبكة ويتم ضبطه على "Auto" على "Auto". وفي كل مرة عندما تظهر أو تختفي VerticalScrollbar ، أريد التعامل مع هذا الحدث.

حاولت الاستماع إلى حدث تغيير الحجم:

    private function onGridResize(event:Event):void
    {
       if (_grid.verticalScrollBar && _grid.verticalScrollBar.visible)
       {
           trace("scroll on");
       }
       else
       {
           trace("scroll off");
       }
    }

لكنه لا يعمل: يبدو لي أن الحدث تغيير حجمه يرسل فعليًا قبل أن يظهر/تختفي شريط التمرير. حاولت الاستماع إلى childexistencechangedevent.child_add و childexistencechangedevent.child_remove الأحداث أيضًا ، لكنها لا تعمل بالنسبة لي أيضًا.

ربما لا أرى بعض الحلول الواضحة. شكرا مقدما على أي مساعدة أو تقديم المشورة.

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

المحلول

أنت لا تحدد الشبكة. (Spark ، MX ، أو واحد منا (http://www.flexicious.com/home/ultimate) )

شيء واحد يمكنك القيام به هو رمي Validatenow قبل التحقق:

private function onGridResize(event:Event):void
    {
       _grid.validateNow(); //add this.

       if (_grid.verticalScrollBar && _grid.verticalScrollBar.visible)
       {
           trace("scroll on");
       }
       else
       {
           trace("scroll off");
       }
    }

الشيء الآخر الذي يمكنك القيام به أيضًا ، هو استخدام مؤقت أو الاتصال لاحقًا.

private function onGridResize(event:Event):void
    {
       callLater(checkForScrollBar); //check for scrollbar would have the code above.
    }

نصائح أخرى

ربما يمكنك الاستماع إلى حدث "العرض" من ScrollBar بحد ذاتها. يجب أن يعمل شيء على غرار هذا:

_grid.verticalScrollBar.addEventListener(ComponentEvent.SHOW, onGridResize);

لم أختبر هذا ، لكنني متأكد من أنه يجب أن يعمل. (بالطبع ، قد ترغب في إعادة تسمية onGridResize لشيء أكثر ملاءمة مثل onVerticalScrollShow.)

بالمناسبة ، ليس عليك التحقق من ذلك ScrollBar موجود ؛ في AS3 النقي على الأقل ، يتم إنشاء مثيل له مع DataGrid ووجود بغض النظر عنهم ScrollPolicy القيمة.

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

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