Показать сообщение отдельно
Старый 18.11.2010, 18:32
kambey80 вне форума Посмотреть профиль Отправить личное сообщение для kambey80 Найти все сообщения от kambey80
  № 13  
Ответить с цитированием
kambey80

Регистрация: Nov 2010
Сообщений: 6
Уважаемые коллеги, был бы рад если бы вы помогли мне с поиском наиболее изящного решения следующий задачи:

______________________________________________________________________________________________________________________________________________________ ____
Открыть XML файл и считать из него информацию о подгружаемых объектах (расположение, координаты, текст)


Передать информацию о файле для загрузки (путь,имя,координаты) в загрузчик


Загрузчик загружает файл на сцену в объект mc_cont, и помещает его на указанные координаты



◌нажатие клавиши◌



перемещение объекта #N в центр экрана со значением z = 0 и переход его на 2 кадр
(#N.gotoAndStop(2))
______________________________________________________________________________________________________________________________________________________ ____

При условие что в процессе можно будет менять кол-во объектов, их размер, и кол-во кадров в них.
Код, который, собственно, мне бы и хотелось по возможности улучшить
AS:
Код AS3:
import fl.transitions.easing.Strong;
import fl.transitions.Tween;
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
 
var myXML:XML = new XML(); 
var XML_URL:String = "myxml.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener("complete", xmlLoaded); 
var num:int=1
var right = false;
 
function xmlLoaded(event:Event):void 
{ 
    myXML = XML(myLoader.data); 
	var total:Number = 0; 
	for each (var property:XML in myXML.slide) { 
		Lod(
			myXML.slide[total].slideID,
			myXML.slide[total].sposX,
			myXML.slide[total].sposY,
			myXML.slide[total].sposZ
			)
		total ++ 
	}
}
 
function Lod(fileName:String,posx:int,posy:int,posz:int):void{  
	  var request:URLRequest = new URLRequest(fileName); 
	  var mc:Loader = new Loader() 
	  mc.load(request); 
	  mc_cont.addChild(mc); 
	  mc.x = posx
	  mc.y = posy
	  mc.z = posz
}
 
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_pressed);	
function key_pressed(e:KeyboardEvent):void {
	switch (e.keyCode) {
		case Keyboard.RIGHT :
			right = true;
			go();
			break;			
		}
}
 
function go():void {
	var clip:DisplayObject = mc_cont.getChildAt(num);
	mc_cont.setChildIndex(clip,mc_cont.numChildren-1)
	var xPos:Number = (1024/2)-clip.x-70;
	var yPos:Number = (768/2)-clip.y-70;
	var zPos:Number = -clip.z;
	new Tween(mc_cont, "x", Strong.easeOut, mc_cont.x, xPos, 2, true);
	new Tween(mc_cont, "y", Strong.easeOut, mc_cont.y, yPos, 2, true);
	new Tween(mc_cont, "z", Strong.easeOut, mc_cont.z, zPos, 2, true);
	num--
}
XML:
Код:
<order> 
        <slide> 
	    <slideID>\slide\1.swf</slideID> 
            <slideName>Slide 1</slideName> 
            <slideText>Slide 1 Text</slideText>
	    <sposX>500</sposX> 
	    <sposY>500</sposY>
	    <sposZ>1500</sposZ>
        </slide> 

	<slide> 
	    <slideID>\slide\2.swf</slideID> 
            <slideName>Slide 2</slideName> 
            <slideText>Slide 2 Text</slideText>
	    <sposX>0</sposX> 
	    <sposY>0</sposY>
	    <sposZ>500</sposZ>
        </slide> 
        
    </order>
Добавлено через 19 часов 26 минут
В целом основной вопрос состоит вот в чем:
как в ф-ции go() сделать так, что бы clip.gotoAndStop(2) работал?