ActionScript - ComboBox Является ли SelectableList?

Я не понимаю документацию Adobe для класса SelectableList:

SelectableList является базовым классом для всех основанных на списке компонентов - например, компонентов List, TileList, DataGrid и ComboBox.

SelectableList не является базовым классом для ComboBox:

SelectableList > BaseScrollPane> UIComponent> Sprite> DisplayObjectContainer> InteractiveObject> DisplayObject> EventDispatcher> Объект

ComboBox > UIComponent> Sprite> DisplayObjectContainer> InteractiveObject> DisplayObject> EventDispatcher> Объект

import fl.controls.*;

var l:List = new List();
trace(l is SeletableList); //true

var tl:TileList = new TileList();
trace(tl is SelectableList); //true

var dg:DataGrid = new DataGrid();
trace(dg is SelectableList); //true

var cb:ComboBox = new ComboBox();
trace(cb is SelectableList); //false

это ошибка? или я что-то упустил?

1 ответ

Решение

Это просто способ, которым Adobe иногда выражает себя в документации: сбивает с толку.

Чтобы выразить это простыми терминами ООП, это разница между расширением класса ("is a") и использованием композиции ("has a"):

List, TileList, DataGrid является списком выбора (потому что каждый из них расширяет список выбора)

ComboBox имеет список выбора (поскольку он имеет компонент списка, доступ к которому осуществляется через свойство раскрывающегося списка (который является списком выбора)).

Надеюсь, это проясняет.

Другие вопросы по тегам