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 скорость доступа по ключу к элементам массива сравнима по скорости доступа по ключу (объекту) к элементам словаря. Чем я и воспользуюсь в одном интересном кейсе =)

Убираем таймаут для FlashPlayer в Firefox

Думаю многие были в ситуации, когда во время спокойного путешествия между брейкпойнтами по истечении некоего времени Firefox убивал FlashPlayer?

Исправить можно так:

  1. Переходим в about:config
  2. Выставляем dom.ipc.plugins.timeoutSecs равным -1
  3. Профит!

Выставляем межстрочный интервал в TextField в AS3

Сегодня столкнулся с такой проблемой:
Использую TextField отформатированный TextFormat и захотелось мне выставить leading поменьше, по дефолту он 0, а надо было сдвинуть строки ещё больше.
Пример кода:

var tf:TextFormat = new TextFormat(gameFont.fontName, inSize, inColor, inBold, null, null, null, null, inAlign);
tf.leading = -10;
var label:TextField = new TextField();
label.width = 50;
label.height = 30;
label.multyline = true;
label.wordWrap = true;
label.defaultTextFormat = tf;
label.htmlText = ‘Тут какой-то текст с переносом строки’;

К сожалению, никакого эффекта это не дало, все свойства текста менялись на необходимые, кроме злополучного интервала.
В хоге допроса гугла набрёл на вот такой финт ушами:

var tf:TextFormat = new TextFormat(gameFont.fontName, inSize, inColor, inBold, null, null, null, null, inAlign);
tf.leading = -10;
var label:TextField = new TextField();
label.width = 50;
label.height = 30;
label.multyline = true;
label.wordWrap = true;
label.defaultTextFormat = tf;
label.htmlText = ‘Тут какой-то текст с переносом строки’;
var style:StyleSheet = new StyleSheet();
style.setStyle(«spaced», {leading:-10});
text.styleSheet = style;
label.htmlText = ‘Тут какой-то текст с переносом строки’;

И о чудо! Все работает! =)