Вы немного неправильно понимаете, что такое переменные. Они не объекты, это ссылки на объекты.
Позвольте мне попытаться объяснить, проведя вас через ваш код:
Итак, эти две переменные являются локальными только для экземпляра Images и ссылаются на две заданные вами строки:
private var url1:String = "http://www.mydomain.com/myImage.jpg";
private var url2:String = "http://www.mydomain.com/myImage2.jpg";
Теперь вы определяете две переменные, но не присваиваете им никаких значений, поэтому на данный момент они пусты или в AS3 "null":
public static var IMAGE_ONE_BDATA:BitmapData;
public static var IMAGE_TWO_BDATA:BitmapData;
Теперь вы создаете новый массив и передаете в него два объекта, на которые ссылаются url1 и url2. Обратите внимание, что вы не храните две переменные, вы храните объекты, на которые ссылаются эти переменные. Более того через минуту:
private var urlArray = new Array(url1,url2);
так что теперь, если вы измените url1 на "hello url1" и отследите urlArray, у вас все еще будут две ссылки в массиве.
Если все это имеет смысл, то, надеюсь, вы увидите, что здесь произойдет:
private var bDataArray = new Array(IMAGE_ONE_BDATA, IMAGE_TWO_BDATA);
вы не прикрепили никаких объектов к IMAGE_ONE_BDATA или IMAGE_TWO_BDATA; они по-прежнему равны нулю, поэтому вы передаете нуль в массив дважды. Позже, если вы назначите объект IMAGE_ONE_BDATA, вы не назначите его массиву, только этой переменной.
Теперь вы присвоили битовые данные массиву, но не IMAGE_ONE_BDATA. Ваши ожидания неверны, он должен возвращать ноль:
bDataArray[count] = e.target.content.bitmapData;
trace(IMAGE_ONE_BDATA) // <-- this _should_ trace null
Далее вы ссылаетесь на bitmapData на IMAGE_ONE_BDATA, так что теперь у него есть ссылка
IMAGE_ONE_BDATA = e.target.content.bitmapData;
trace(IMAGE_ONE_BDATA) // <-- will now return my bitmapdata object
Ошибка в том, что IMAGE_ONE_BDATA следует рассматривать как объект, в который вы помещаете bitmapData, а не как имя в заметке post-it, которую вы прикрепляете к объектам, когда хотите их отслеживать. Сам растровые данные - это интересующий вас объект, а не имя.
Если вам нужно, чтобы ваши растровые данные были общедоступными и статичными, забудьте ваши IMAGE_ONE_BDATA и IMAGE_TWO_BDATA и определите:
public static var bDataArray:Array
вместо.
Надеюсь, это поможет - нет полиции Флэш. :)