Я разрабатываю проект в AS3 в коммерческих целях и изучаю.Редактировать галерею XML с AS3
На этот раз я разрабатываю галерею изображений с XML и AS3, и у меня есть сомнения в изменении размера сцены и изменении положения x моих изображений.
С помощью этого кода ниже я могу изменить размер изображений, но я не могу изменить их значения x.
Неужели кто-нибудь может спрятать меня с этой ситуацией?
Thanx много!
код я использую:
import flash.display.StageScaleMode;
import flash.display.StageAlign;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
var container_mc:MovieClip;
var my_images:XMLList;
var my_total:Number;
var my_thumb_width:Number;
var my_thumb_height:Number;
var x_counter:Number = 0;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("xml/snfashion_xml.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML = new XML(e.target.data);
my_images = myXML.IMAGE;
my_total = my_images.length();
createContainer();
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function createContainer():void {
container_mc = new MovieClip();
container_mc.x = 0;
container_mc.y = 0;
addChild(container_mc);
}
function callThumbs():void {
for (var i:Number = 0; i < my_total; i++) {
var thumb_url = my_images[i][email protected];
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.name = i;
thumb_loader.x = ((stage.stageHeight-80)*0.451428)*(x_counter);
thumb_loader.y = 0;
if (x_counter < my_total) {
x_counter++;
}
}
}
function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
container_mc.addChild(my_thumb);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
my_thumb.width = (stage.stageHeight-80)*0.4571428;
my_thumb.height = stage.stageHeight-80;
function thumbLoadedResize (e:Event):void
{
trace("STAGE HAS BEEN RESIZED");
my_thumb.width = (stage.stageHeight-80)*0.4571428;
my_thumb.height = stage.stageHeight-80;
}
stage.addEventListener(Event.RESIZE, thumbLoadedResize);
}
Я попытался вызвать этап изменения размера функции в thumb_loader
и my_thumb
, но он не работал, в косе не генерирует сообщения об ошибках.
Guss, thanx для ответа. Я triyng, чтобы сделать изменения, которые вы мне сказали, но это пока не работает. У меня есть более объективный вопрос. Положение большого пальца X задано в команде «для», которая находится внутри функции. Как я могу обновить положение x thumb_loader без повторного выполнения функции? –
Если у вас есть ссылка на thumb_loader, тогда это все, что вам нужно. Вероятно, вы имеете в виду доступ к x_counter, который локально привязан к циклу - ну, вы можете назначить его текущее значение для каждой итерации свойству на thumb_loader - как (или вместо того, как) вы храните 'i' в thumb_loader. – Guss