- Что именно происходит за кулисами, когда я объявляю компонент в MXML?
Вы все равно правильно.MXML компилируется в ActionScript.Вы можете просмотреть этот ActionScript с помощью аргумента keep compiler.Это может стать довольно запутанным.Код, который вы пишете от руки, намного элегантнее.Я предполагаю, что именно поэтому Adobe говорит нам использовать AS для мобильных тем оформления.
- Каковы различия между объектами, созданными as3, и объектами, созданными MXML?
Если вы имеете в виду объекты в памяти, разницы нет.Компоненты MXML являются классами, такими же, как компоненты ActionScript.Однако если вы используете MXML для генерации ActionScript, то у фактического работающего компонента будет другая кодовая база.
- Если я преобразую компонент MXML в класс as3 (т.е. добавьте каждого дочернего элемента)и установите каждое свойство для каждого дочернего элемента вручную в коде, а не в декларативном синтаксисе MXML. Я что-то получаю?
У вас более детальный контроль над тем, как компонент работает и работает.Я написал статью для InsideRIA на эту тему: http://insideria.com/2010/05/7-reasons-to-write-in-actionsc.html
(В настоящее время у меня нет реального устройства для тестирования, и на моем рабочем столе не наблюдается снижения производительностикомпьютер при использовании MXML ItemRenderers для Списка с сотнями элементов.)
Для ясности, вы понимаете, что классы на основе списка отображают только то, что на экране, верно?Таким образом, даже если ваш список содержит сотни элементов, он, скорее всего, отображает только 5-10 одновременно.Это означает, что создано всего 5-10 рендеров.Прокрутка списка симулируется, а не реально.Рендереры просто меняют свои данные.В любом случае, я пытался подчеркнуть, что список из сотен элементов должен работать с той же эффективностью, что и список из десяти элементов, или список из тысячи элементов.Я ожидаю, что вы увидите очень разную производительность на рабочем столе и на устройстве.