1 - у вас есть два допустимых варианта: сравнить с undefined
или сравнить с null
. Разница такая:
undefined
: значение вообще не существует
null
: значение существует, но содержит ноль
Итак, вы выбираете, что подходит в вашем случае. Смотрите примеры.
import flash.utils.Dictionary;
var test:Dictionary = new Dictionary();
trace(test[1] == null); // true, because null is internally converted to undefined
trace(test[1] === null); // false, because of strictly typed comparison
trace(test[1] == undefined); // true
trace(test[1] === undefined); // true
2 - Я всегда делаю циклы по словарям, чтобы очистить их, когда у меня есть ссылки (а не только ptimitive типы, такие как числа или строки). Что ж, в этом нет необходимости, но так я немного помогу сборщику мусора, что, как правило, хорошая идея.
3 - Это меня озадачило. Зачем вам вещание таким образом? Это очень похоже на то, что у нас было несколько дней назад с классом AsBroadcaster в AS1-2, который не был изначально предоставлен нам возможностями вещания. AS3 имеет встроенную систему диспетчеризации событий, которую вы можете обновить в соответствии со своими потребностями (например, если вам нужно вести список слушателей для каждого типа событий).
Эти ссылки могут быть полезны: