Scaleform. Сравнение скорости доступа к элементам массива и к элементам словаря

В воспалённом мозгу родился вопрос, что быстрей в Scaleform доступ к элементам массива по ключу или доступ к элементам словаря по ключу, в последнем случае ключём выступают объекты.

Накидал следующий тестовый классец:

import flash.utils.Dictionary;
import flash.utils.getTimer;
var d:Dictionary = new Dictionary(true);
var a:Array = [];
var n:Array = [];
var ob:Object;
for (var i:int = 0; i < 10; i++) {
 a.push(i);
 this['item'+i] = {id:i};
 ob = this['item'+i];
 n.push(ob);
 d[ob] = i;
}
var t:int = getTimer();
var r:int = 0;
for (i = 0; i < 300000; i++) {
 for (var j:int = 0; j < 10; j++) {
 r += a[j];
 }
}
trace(getTimer() - t, r);
r = 0;
t = getTimer();
for (i = 0; i < 300000; i++) {
 for each (ob in n) { 
 r += d[ob];
 }
}
trace(getTimer() - t, r);

Флеш радостно показывал в логах следущее:

29 13500000
230 13500000

Видим что доступ к элементам массива по ключу гораздо быстрей отработал в описанном выше кейсе.

Запускаем Scaleform Player… и о чудо  видим:

1072 13500000
1124 13500000

Жалкое зрелище, душераздирающее зрелище. Но можно сделать вывод, что в Scaleform скорость доступа по ключу к элементам массива сравнима по скорости доступа по ключу (объекту) к элементам словаря. Чем я и воспользуюсь в одном интересном кейсе =)

9-slice, Movieclip и маска

Заметили интересный баг:
В библиотеке лежит мувиклип, у которого активирован 9-slice-scalling, скруглённые уголки во все поля. Данный mc выполняет роль маски, для панельки меню, менюшка заведомо больше размера мувиклипа.
Так вот, если программно менять длину mc, который является маской, то 9-slice-scalling перестаёт срабатывать. Мувиклип, к сожалению начинает просто растягиваться.
Если же этот mc не является маской, то всё работает отлично.
Workaround:

  1. Создаём мувиклип, включаем 9-slice-scalling (newMc)
  2. Для mc маску не применяем!
  3. Добавляем тот мувиклип в мувиклип маску (mc), он должен быть доступен так mc.newMc
  4. Выставляем cacheAsBitmap свойство для mc и маскируемого объекта (obj) в значение true
  5. Используем mc в качестве маски: obj.mask = mc