Дело в том, что Array не "честный" массив, а Vector честный.
Array может выступать и в качесте хэшмапы, где ключом может быть и строка а не только uint.
Вместо

Код AS3:
v['b'+i] = 'bbb';
делайте

Код AS3:
v[i] = 'bbb';
или

Код AS3:
v.push('bbb');
И вы не совсем понимаете разницу между Dictionary и Object.
Использовать в качестве ключа в словаре строку - нонсенс.
Словарь нужен для использования в качестве ключа ссылочных объетов.
Для строк и неупорядоченных чисел - Object
Для упорядоченных наборов индексов - Array.
Я вообще предпочитаю установку значеий массива только через push - это позволяет избежать глупых ошибок с пропущенными индексами и превращения массива в объект (хэш)