![]() |
|
||||||||||
|
|||||
|
Друзья, у меня никак не получается сделать "умную загрузку" с помощью XML. Пытался из разных советов слепить что - то одно, но я плохой программист и ничего не вышло. Поэтому решил сделать все с нуля, ну и конечно надеюсь на вашу поддержку!
В лучшем случае, в конце этой темы у нас должно получиться небольшое приложение, полностью динамично подгружающее в себя информацию с помощью XML. Как оно должно работать: На сцене появляются 3 иконки, при клике на определенную иконку, должна подгружаться информация именно этой иконки по которой кликнули. Ну а информация должна заключаться в виде одной картинки и двух текстовых блокав, например, имя и биография. Не судите строго , совсем недавно начал изучать as3Добавлено через 2 минуты а вот и первый вопрос package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLRequest; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.display.StageAlign; import flash.display.StageScaleMode; public class SimpleUsingXML extends Sprite { public function SimpleUsingXML():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); trace("SimpleUsingXML")//выводит } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; var xmlLoader:URLLoader=new URLLoader(); xmlLoader.dataFormat = URLLoaderDataFormat.TEXT; xmlLoader.addEventListener(Event.COMPLETE, parseXML); xmlLoader.load(new URLRequest("photo/userphotos.xml")); } private function parseXML(event:Event):void { trace("parseXML")//не выводит } } } Последний раз редактировалось Dr_Bra; 24.02.2010 в 19:40. |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 102
|
Привет. Вот мой работающий код. Может натолкнёт на мысли. По поводу твоей задачи в принципе представляю как это можно сделать. Сейчас убегаю. Так что если будут вопросы смогу помочь завтра, послезавтра. Сам знакомлюсь с XML сейчас.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; [SWF(width="1024", height="768", backgroundColor="#ffffff")] public class xmlProject extends Sprite { public var xmlLoader:URLLoader = new URLLoader(); public var xmlList:XMLList; public var xmlData:XML; public function xmlProject() { xmlLoader.addEventListener(Event.COMPLETE, showXML); xmlLoader.load(new URLRequest("xml_file.xml")); } public function showXML(e:Event):void { xmlData=new XML(e.target.data); //xmlData.ignoreWhitespace=true; xmlList=xmlData.children(); for (var i:int=0; i < xmlList.length(); i++) { var picLoader:Loader=new Loader(); picLoader.load(new URLRequest(xmlList[i].attributes()[1])); picLoader.x=20; picLoader.y=i*160+20; addChild(picLoader); var stringVar:String=new String; var textfieldVar:TextField=new TextField; textfieldVar.multiline=true; textfieldVar.selectable=true; textfieldVar.x=400; textfieldVar.y=picLoader.y; addChild(textfieldVar); stringVar=xmlList[i].children()[2]; //stringVar=xmlList[i].elements("body"); textfieldVar.text=stringVar; } } } } <?xml version="1.0" encoding="utf-8"?> <images> <img big="data/images/01.jpg" b="data/images/04.jpg">grrr 1 <title>Картинка 1</title> <body>about 1</body> </img> <img big="data/images/02.jpg" b="data/images/05.jpg">grrr 2 <title>Картинка 2</title> <body>about 2</body> </img> <img big="data/images/03.jpg" b="data/images/06.jpg">grrr 3 <title>Картинка 3</title> <body>about 3</body> </img> </images> Последний раз редактировалось wvxvw; 24.02.2010 в 20:28. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А где расположен файл photo/userphotos.xml по отношению к свф?
И перенеси первый трейс в init(), чтобы знать что вообще дошли до загрузки xml ))
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот тебе еще пример, на этот раз с фла))))
__________________
Reality.getBounds(this); |
|
|||||
|
спасибо, Wolsh!
На этой основе я пытаюсь построить загрузку разных иконок, для каждой персоны. Иконки грузятся, только перестает правильно работать событие кликнуть на тексе - работает, на иконку - нет.. мы же и текст и иконку поместили в один контейнер userIcon.. Последний раз редактировалось Dr_Bra; 25.02.2010 в 19:04. |
|
|||||
|
Вот уже более модифицированный код в нашем приложении. Только не получается решить проблему с кликом по иконке. И, вроде, контейнер с карточкой загружается поверх старого, не удаляя предыдущий, это же не правильно, как это поправить, с помощью уровней или есть более разумное решение?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:58. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| loader as3 , xml , XMLLoader |
| Опции темы | |
| Опции просмотра | |
|
|