Вы можете создать класс, который вы будете использовать для каждого изображения, у этого класса будет свойство url, но вы также можете иметь свойство gallery & client в зависимости от того, чего вы пытаетесь достичь.
При чтении данных из XML я склонен создавать свои объекты непосредственно из данных XML.
Например, я получал бы свой объект изображения из узла xml, подобного этому
images
image
ID 1 /ID
url http://example.com/images/img1.jpg /url
client John Smith /client
clientURL http://clientSite.com/ /clientURL
galleryID 6 /galleryID
/image
etc...
/images
var imageData:XMLList = xml..images;
//then I use a "for" loop to iterate thru imageData , inside the "for" loop I would have
var image:Image = new Image();
//the return values are XMLList so they need to be coerced
image.imageURL = String(imageData[i].url);
image.clientURL = String(imageData[i].clientURL);
etc...
Затем вы можете хранить объекты Image в массиве и манипулировать ими по мере необходимости.Поскольку класс Image расширяет Sprite, вы можете рассмотреть возможность добавления загруженного растрового изображения к соответствующему объекту.
//if you're using a for loop
var image:Image = imagesArray[i] as Image;
loader.name = i.toString();
loader.load( new URLRequest(image.imageURL ) );
function completeHandler(event:MouseEvent):void
{
var index:int = int(event.currentTarget.loader.name);
var image:Image = imagesArray[index] as Image;
image.addChild(event.currentTarget.loader.content );
}
В классе Image добавьте прослушиватель MouseEvent для вызова navigateToURL, и если пользователь щелкнет изображение, он будетбыть перенаправлены на определенный URL изображения
private function mouseClickHandler(event:MouseEvent):void
{
navigateToURL( new URLRequest(_clientURL ) );
}
Вот базовый пример:
package
{
import flash.display.Sprite;
public class Image extends Sprite
{
private var _client:String;
private var _galleryID:int;
private var _galleryName:String;
private var _imageID:int;
private var _imageURL:String;
public function Image()
{
}
public function get imageURL():String
{
return _imageURL;
}
public function set imageURL(value:String):void
{
_imageURL = value;
}
public function get imageID():int
{
return _imageID;
}
public function set imageID(value:int):void
{
_imageID = value;
}
public function get galleryName():String
{
return _galleryName;
}
public function set galleryName(value:String):void
{
_galleryName = value;
}
public function get galleryID():int
{
return _galleryID;
}
public function set galleryID(value:int):void
{
_galleryID = value;
}
public function get client():String
{
return _client;
}
public function set client(value:String):void
{
_client = value;
}
}
}