Допустим создать свой класс картинки MyImage у которого есть свойство vid
И зачем вы при каждом клике повторно грузите тот же xml файл?
Можно так

Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class Main extends Sprite
{
private const XML_PATH:String = "data.xml";
private var xml:XML;
private var pict:Bitmap;
private var imageList:Array = new Array();
private var imageContener:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest(XML_PATH));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoadedHandler);
}
private function xmlLoadedHandler(e:Event):void {
xml = new XML(e.target.data);
var xmlList:XMLList = xml.settings.pictures.children();
for (var i:int = 0; i < xmlList.length(); i++) {
var imgXML:XML = new XML(xmlList[i]);
var myImage:Object = new Object();
myImage.url = imgXML.@url;
myImage.vid = imgXML.@vid;
imageList.push(myImage);
}
imageContener = new Sprite();
addChild(imageContener);
imageContener.addEventListener(MouseEvent.CLICK, imageClickHandler);
imageClickHandler(null);
}
private function imageClickHandler(e:MouseEvent):void {
var randomValue:uint = Math.floor(Math.random() * imageList.length);
trace('vid = ' + imageList[randomValue].vid);
var loader:Loader = new Loader();
loader.load(new URLRequest(imageList[randomValue].url));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoadedHandler);
}
private function imageLoadedHandler(e:Event):void {
pict = e.target.content as Bitmap;
pict.smoothing = true;
imageContener.addChild(pict);
}
}
}