Я попытался воссоздать ваш сценарий, поэтому у меня был фиктивный клип для загрузки ScrollPane, и
ScrollPane содержит MovieClip со связью (Экспорт для Actionscript), поэтому я могу создать несколько экземпляров. Также в этом клипе слой над компонентом ScrollPane я поместил кнопку закрытия.
Моя первая попытка состояла в том, чтобы отладить fla и посмотреть, где именно он потерпит неудачу. Мне не удалось узнать что-нибудь, что это было, поскольку я продолжал получать это:
Cannot display source code at this location.
Затем я последовал вашим инструкциям и нашел функцию endDrag (). Я изменил это на это:
protected function endDrag(event:MouseEvent):void {
if(stage) stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag);
}
И попробовал. Это не сработало в первый раз, как если бы оно не было скомпилировано. Я попытался отредактировать класс в Flash IDE и увидел, в чем заключалась эта небольшая оговорка. Вот что я имею в виду:
Так что я скопировал ScrollPane.as из папки Flash CS4 в ./fl/containers/ScrollPane (в основном относительно .fla). Этот файл .as был скомпилирован, и ошибка исчезла.
Короткая версия: Да! Вы нашли проблемное место :) Добавьте if, чтобы проверить наличие нулевого объекта в качестве быстрого исправления, и не забудьте сохранить ScrollPane.as относительно файла .fla или в вашем classpath перед повторной компиляцией.
НТН,
George