Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 XML loader с AS3
  1. XML loader с AS3
dfm
     
Автор  dfm (08.03.2008 13:08)  съобщение до автора
Погледнат  2073 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (0)  абонирай се за Flash
    Страница 1 / 1

 



В AS3 зареждането на XML файл става много по-различно от AS2. Какви са точно разликите ще разгледаме в този урок на базата на директен пример. Ето го и скрипта:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
stop();
//
loading xml
var loader
:URLLoader = new URLLoader();
loader.addEventListener(ProgressEvent.PROGRESS, loadingXML);
loader.addEventListener(Event.COMPLETE, onLoadXML);
loader.load(new URLRequest("getIngo.xml"));

///
trace percent and bytes
function loadingXML
(info:ProgressEvent):void {
   
trace("bytesLoaded: "+info.bytesLoaded+"\nbytesTotal: "+info.bytesTotal);
   
trace("percent: "+Number(info.bytesLoaded/(info.bytesTotal/100))+" %");
}

var endInfoArray:Array = new Array();
//
[0]->path to picture, [1]-> go to url [2]->views [3]->uploaded by
//
[4]->title [5]->duration [6]->rating

///
get all info in endInfoArray
function onLoadXML
(info:Event):void {
   
loader.removeEventListener(ProgressEvent.PROGRESS, loadingXML);
   
loader.removeEventListener(Event.COMPLETE, onLoadXML);
   
var XMLdata:XMLDocument = new XMLDocument();
   
XMLdata.ignoreWhite = true;
   
XMLdata.parseXML(String(loader.data));
   
var i:uint;
   
for (i=0; i<XMLdata.firstChild.childNodes.length; i++) {
       
endInfoArray.push(new Array(XMLdata.firstChild.childNodes[i].attributes["picUrl"],
                                   
XMLdata.firstChild.childNodes[i].attributes["togoURL"],
                                   
XMLdata.firstChild.childNodes[i].attributes["view"],
                                   
XMLdata.firstChild.childNodes[i].attributes["from"],
                                   
XMLdata.firstChild.childNodes[i].attributes["title"],
                                   
XMLdata.firstChild.childNodes[i].attributes["duration"],
                                   
XMLdata.firstChild.childNodes[i].attributes["starts"])
        )
;
   
}
   
showArrayInfo(endInfoArray);
}


function showArrayInfo(array:Array):void {
   
var i:uint;
   
for (i=0;i<array.length;i++) {
       
trace("-----["+i+"]---------");
       
trace("url: "+array[i][0]);
       
trace("web: "+array[i][1]);
       
trace("view: "+array[i][2]);
       
trace("uploaded by: "+array[i][3]);
       
trace("title: "+array[i][4]);
       
trace("duration: "+array[i][5]);
       
trace("rating: "+array[i][6]);
   
}
}


Сега идва и обяснението. В AS3 вече ползваме XMLDocument, вместо XML.
Тук използваме обекта loader, да зареди XML с url: "getIngo.xml", като му добавяме listeners, с помощта на които следим прогреса на зареждане и пълното зареждане на XML файла.

CODE
1
2
3
4
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("getIngo.xml"));
loader.addEventListener(ProgressEvent.PROGRESS, loadingXML);
loader.addEventListener(Event.COMPLETE, onLoadXML);

В първите два реда премахваме listeners. Инициализираме си променлива XMLdata от тип XMLDocument. Новото тук е XMLdata.parseXML(String(loader.data)); с този ред добавяме към XMLdata xml съдържание. Иначе относно firstChild, childNodes и attributes, нямаме промени.
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    loader.removeEventListener(ProgressEvent.PROGRESS, loadingXML);
   
loader.removeEventListener(Event.COMPLETE, onLoadXML);
   
var XMLdata:XMLDocument = new XMLDocument();
   
XMLdata.ignoreWhite = true;
   
XMLdata.parseXML(String(loader.data));
   
var i:uint;
   
for (i=0; i<XMLdata.firstChild.childNodes.length; i++) {
       
endInfoArray.push(new Array(XMLdata.firstChild.childNodes[i].attributes["picUrl"],
                                   
XMLdata.firstChild.childNodes[i].attributes["togoURL"],
                                   
XMLdata.firstChild.childNodes[i].attributes["view"],
                                   
XMLdata.firstChild.childNodes[i].attributes["from"],
                                   
XMLdata.firstChild.childNodes[i].attributes["title"],
                                   
XMLdata.firstChild.childNodes[i].attributes["duration"],
                                   
XMLdata.firstChild.childNodes[i].attributes["starts"])
        )
;
   
}

Използвам функцията showArrayInfo(), за да видим какви стойностти са се присвоили в масива.


Примерни файлове за даунлоуд: ТУК



   


Ключови думи: xml loader flash зареждане на XML файл


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: dfm  
Занимвам се главно с девелъпмънт. С Flash от зимата, 2004. С Flex от 2007. PHP и MySQL от 2006. Възможности: Flash +PHP +MySQL, Flash +XML, Flash +Zink, Flash +Director.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008