![]() |
|
|
|||||
Регистрация: Nov 2010
Сообщений: 6
|
Огромное вам спасибо за помощь, это именно то что мне нужно. =)
|
|
|||||
Регистрация: Nov 2010
Сообщений: 6
|
Уважаемые коллеги, был бы рад если бы вы помогли мне с поиском наиболее изящного решения следующий задачи:
______________________________________________________________________________________________________________________________________________________ ____ Открыть XML файл и считать из него информацию о подгружаемых объектах (расположение, координаты, текст) ▼ Передать информацию о файле для загрузки (путь,имя,координаты) в загрузчик ▼ Загрузчик загружает файл на сцену в объект mc_cont, и помещает его на указанные координаты ▼ ◌нажатие клавиши◌ ▼ ▼ перемещение объекта #N в центр экрана со значением z = 0 и переход его на 2 кадр (#N.gotoAndStop(2)) ______________________________________________________________________________________________________________________________________________________ ____ При условие что в процессе можно будет менять кол-во объектов, их размер, и кол-во кадров в них. Код, который, собственно, мне бы и хотелось по возможности улучшить AS: 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-- } <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> В целом основной вопрос состоит вот в чем: как в ф-ции go() сделать так, что бы clip.gotoAndStop(2) работал? |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:47. |
|
« Предыдущая тема | Следующая тема » |
Теги |
3d , AS 3 , tween |
|
|