![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Все мы знакомы с фотогаллереями типа Книга ( 2х страничная галлерея ).
И так у нас есть xml через который мы грузим все фотки. В итоге есть массив битмап дат, и соотв им вектор конфигурации. Выглядит приблизительно так : Тоесть каждой битмапке соотв тип. Типов может быть два - 2х страничный и 1 страничный, предоставим их как '1' и '2' соотв. Но, тип 1 страничный может быть только у 1 позиции и последней ( обложки ) Использую цикл такого типа : 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 раза меньше... Вообщем наверное туго пояснил, но надеюсь кто то сможет понять о чем идет разговор. Вот полный код ( корявый ) как я пытаюсь это решить, хотя до конца и не получилось... 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; }
__________________
Марк Tween |
![]() |
Часовой пояс GMT +4, время: 01:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|