Цитата:
Сообщение от Fogflasher
Мм, что значит глобальная переменная класса, вы наверное имеете ввиду, что:
Код AS3:
private var imageCounter:uint = 0; //убрать под шконку
private var imageLoader:Loader; //убрать под шконку
private var BitData:BitmapData; //убрать под шконку
private var BitItem:Bitmap; //убрать под шконку
private var _picArray:Array; //сделать public, а не private
...
Хотя, что это меняет, в чем заключается "по хорошему" при такой реализации, не очень понятно.
|
Это меняет то что не будет пресловутого счетчика и лишних ссылок. На последние лоадер и битмапу. А чем меньше ссылок - тем меньше вероятность того, что вы забудете про нее при удалении объекта. А сделать свойство паблик, а не приват я не имел ввиду, упаси боже
Вот так как-то:
Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class ImageArrayLoader extends Sprite
{
public static const ALL_LOADED:String = "all_loaded";
private static const LOADINGS_COUNT:int = 3;
private var _images:Vector.<Bitmap>;
public function ImageArrayLoader():void
{
_images = new Vector.<Bitmap>;
addEventListener(ALL_LOADED, addToScreen);
for (var i:int = 1; i <= LOADINGS_COUNT; i++)
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedItem);
loader.load(new URLRequest("text" + i.toString() + ".png"));
}
}
private function loadedItem(e:Event):void
{
e.currentTarget.removeEventListener(Event.COMPLETE, loadedItem);
_images.push(e.currentTarget.content as Bitmap);
if (_images.length >= LOADINGS_COUNT) dispatchEvent(new Event(ALL_LOADED));
}
private function addToScreen(e:Event):void
{
removeEventListener(ALL_LOADED, addToScreen);
for (var i:int = 0; i < _images.length; i++)
{
_images[i].x = i * 10;
_images[i].y = i * 30;
addChild(_images[i]);
}
}
}
}
Но хочу сказать, что и этот класс не совсем правилен, в том плане, что он не универсален. Но это уже другая история
Ну и еще, что не отслеживается возможность возникновения ошибки и что в вашей реализации, что в моей если хоть одна картинка из списка не загрузится то картинки никогда не будут добавлены на экран.