У меня есть гибкое приложение с двумя объектами: родительский виджет (называемый IBaseWidget) и дочерний виджет (называемый HelperWidget2). Когда пользователь щелкает ссылку справки, вспомогательный виджет загружается в список базовых виджетов и затем отображается для пользователя.
Однако, когда я пытаюсь получить доступ к этому дочернему виджету, преобразовывая базовый виджет в коллекции к типу дочернего виджета, дочерний виджет возвращает значение null, и я не могу работать с виджетом.
Следующий фрагмент кода правильно возвращает идентификатор вновь добавленного виджета и отправляет событие для загрузки виджета:
var id:Number = WidgetManager.getInstance().getWidgetId("Helper");
ViewerContainer.dispatchEvent(new AppEvent(AppEvent.WIDGET_RUN, id, openQuickQueryCanvas));
После загрузки виджета функция обратного вызова openQuickQueryCanvas () пытается выполнить другое действие с вспомогательным виджетом:
private function openQuickQueryCanvas():void{
var id:Number = WidgetManager.getInstance().getWidgetId("Helper");
var bWidget:IBaseWidget = WidgetManager.getInstance().getWidget(id) as IBaseWidget;
var helperWidget:HelperWidget2 = bWidget as HelperWidget2;
if(helperWidget != null){
helperWidget.quickQueryCanvas.dispatchEvent(new MouseEvent(MouseEvent.CLICK));//fire an event to open the quick query canvas
}
}
Проблема в том, что приведенный выше helperWidget всегда возвращает null, что означает, что приведение не было успешным. Для меня это не имеет смысла, потому что bWidget имеет тип HelperWidget2.
Есть предположения? Я в тупике ...