Все мы знакомы с фотогаллереями типа Книга ( 2х страничная галлерея ).
И так у нас есть xml через который мы грузим все фотки. В итоге есть массив битмап дат, и соотв им вектор конфигурации.
Выглядит приблизительно так :

Код AS3:
var a:Array = e.content /*array of bitmap*/
var b:Array = [ type , type , type ]
Тоесть каждой битмапке соотв тип.
Типов может быть два - 2х страничный и 1 страничный, предоставим их как '1' и '2' соотв. Но, тип 1 страничный может быть только у 1 позиции и последней ( обложки )
Использую цикл такого типа :

Код AS3:
var bwidth:int = _rwidth + _rwidth / 5;
var bheight:int = _rheight + _rheight / 4;
var alen:int = a.length;
var cols:int = 3;
for (var i:int = 0; i < alen; i++) {
var row:int = Math.floor(i / cols);
var xcoord:int = (i - row*cols) * bwidth;
var ycoord:int = row * bheight;
var con:ImageContainer = new ImageContainer(_rwidth, _rheight, bit , bit1, i.toString() );
con.x = xcoord;
con.y = ycoord;
}
Задача :
Если тип для первый картинки тип 1, создается контейнер с этой 1ой фоткой, точно так же и для последней, если же тип 2, создается контейнер сразу с 1й и 2й картинкой. В моем примере bit , bit1 это 2 возмлжные картинки.
Проблема в следующем цикл пробегает по всем картинкам и создает соотв столько контейнеров сколько картинок. А мне же нужно, объединять картинки если тип 2, и контейнеров соотв будет в 2 раза меньше...
Вообщем наверное туго пояснил, но надеюсь кто то сможет понять о чем идет разговор.
Вот полный код ( корявый ) как я пытаюсь это решить, хотя до конца и не получилось...

Код AS3:
private function onLoad(e:CustomMultiLoaderEvents):void
{
var a:Array = e.content;
var bwidth:int = _rwidth + _rwidth / 5;
var bheight:int = _rheight + _rheight / 4;
var alen:int = a.length;
var cols:int = 3;
var n:int = 1;
var b:Boolean;
for (var i:int = 0; i < alen; i++) {
var row:int = Math.floor(i / cols);
var xcoord:int = (i - row*cols) * bwidth;
var ycoord:int = row * bheight;
var bit:Bitmap = null;
var bit1:Bitmap = null;
if (!i || n == alen - 2) {
bit = new Bitmap((a[i] as Bitmap).bitmapData);
}
else {
bit = new Bitmap( (a[n] as Bitmap).bitmapData);
bit1 = new Bitmap( (a[n + 1] as Bitmap).bitmapData);
if (n != alen - 2 ) n = n + 2;
else break;
}
var con:ImageContainer = new ImageContainer(_rwidth, _rheight, bit , bit1, i.toString() ,_content[i].type);
con.addEventListener(MouseEvent.CLICK , onClick);
_dynamicContent.addChild(con);
con.x = xcoord;
con.y = ycoord;
}
КОнечно же это полная порнография, поэтому думаю помогут светлые умы. Спасибо