. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .


 
 
SEGÉDLETEK Flash+XML

Xml adatok beolvasása és kezelése
  feltöltve: 2008.10.30 | szerző: Heryos05 | olvasva: 1279 alkalommal

   
 

II. Attributumok beolvasása

Mint a fentiekben említettem az XML-t nem csak képek vagy menük készítésére használható. Esetenként a honlap kinézetét befolyásoló elemeket is tarthatunk benn a későbbi gyors változtatás vagy akár php script segítségével. Következő példa egy egyszerű színezés és méretezést fog bemutatni.

  1. Xml felépítése:

 xml fájlunk neve class.xml

<class>

<member menum="900" magas="900" neve="Home" szine="006699" menu_alpha="100" bg_alpha="10" tempo="20">
<kep>2.jpg</kep>
<leir></leir>
</member>

<member menum="333" magas="320.2" neve="linkek" szine="007799" menu_alpha="100" bg_alpha="30" tempo="20">
<kep>01.swf</kep>
<leir></leir>
</member>

<member menum="444" magas="330.2" neve="referenciak" szine="005540" menu_alpha="100" bg_alpha="50" tempo="20">
<kep>4.jpg</kep>
<leir></leir>
</member>

<member menum="555" magas="340.2" neve="letöltés" szine="006969" menu_alpha="100" bg_alpha="100" tempo="20">
<kep>5.jpg</kep>
<leir></leir>
</member>

<member menum="666" magas="350.2" neve="munkák" szine="007899" menu_alpha="100" bg_alpha="80" tempo="20">
<kep>6.jpg</kep>
<leir></leir>
</member>

<member menum="777" magas="370.2" neve="kapcsolat" szine="006699" menu_alpha="100" bg_alpha="30" tempo="20">
<kep>8.jpg</kep>
<leir></leir>
</member>

<member menum="888" magas="380.2" neve="vendégkönyv" szine="006699" menu_alpha="100" bg_alpha="100" tempo="20">
<kep>02.swf</kep>
<leir></leir>
</member>

</class>

mint láthatjuk menum="" magas="" neve="" szine="" menu_alpha="" bg_alpha=="" és tempo="" adatok találhatok 7szülőt 7 játékát  és  2 gyerekét. Tehát lesz egy elég bő xml adat tömbünk. Ami így nézne ki leírva

gyerekek (sub-child-nod):

gyerek0 = <kep></kep>

gyerek1= <leir></leir>

szülők  (child-node) és játékaik (attributes):

szülő0 menum0 magas0 neve0 szine0 menu_alpha0 bg_alpha0 tempo0
szülő1 menum1 magas1 neve1 szine1 menu_alpha1 bg_alpha1 tempo1
szülő2 menum2 magas2 neve2 szine2 menu_alpha2 bg_alpha2 tempo2
szülő2 menum3 magas3 neve3 szine3 menu_alpha3 bg_alpha3 tempo3
szülő(N) menum(N) magas(N) neve(N) szine(N) menu_alpha(N) bg_alpha(N) tempo(N)

 

szülők (child-node) :

szülő0 gyerek0 gyerek1
szülő1 gyerek0 gyerek1
szülő2 gyerek0 gyerek1
szülő3 gyerek0 gyerek1
szülő4 gyerek0 gyerek1
szülő5 gyerek0 gyerek1
szülő6 gyerek0 gyerek1
  1. AS:

//betöltjük az xmlt az eőbbi módon

 

menuXML = new XML();
menuXML.ignoreWhite = true;
menuXML.onLoad = function() {
          pushToArray(this.firstChild);
};
menuXML.load("class.xml");


//


function pushToArray(xml) {

 

//változók beáálítása


var max = xml.childNodes.length;
var menus = new Array();
var magasag = new Array();
var menuneve = new Array();
var menuszine = new Array();
var menu_alph = new Array();
var bg_alph = new Array();
var mappa = "pictures/";
var menu_alp = xml.childNodes.attributes.menu_alpha;


kep = [];
kep_leir = [];

 

//tömbösítési ciklus


for (var k = 0; k<max; k++) {


menus[k] = xml.childNodes[k].attributes.menum;
magasag[k] = xml.childNodes[k].attributes.magas;
menuneve[k] = xml.childNodes[k].attributes.neve;
menuszine[k] = xml.childNodes[k].attributes.szine;
menu_alph[k] = xml.childNodes[k].attributes.menu_alpha;
bg_alph[k] = xml.childNodes[k].attributes.bg_alpha;
kep[k] = xml.childNodes[k].childNodes[0].firstChild.nodeValue;
kep_leir[k] = xml.childNodes[k].childNodes[1].firstChild.nodeValue;


 


     }

 

//duplikálási ciklus


         for (v=0; v<max; v++) {


_root["btn"+v].num = v;
btn.duplicateMovieClip("btn"+v,v);
this["btn"+v]._y = 37+30*v;
this["btn"+v]._x = 78.5;
this["btn"+v].m_text.htmlText = ""+menuneve[v];
this["btn"+v]._alpha = menu_alph[v];
if (v>=4) {
     this["btn"+v]._y = (37+30*v)-(4*30);
     this["btn"+v]._x = 78.5+153;
}

 


       }
       bevitel.text = menus;

Adatok visszanyerése az XML ből attributes.neve menü nevének attributuma, attributes.magas MC magasága, attributes.menum szélesége, xml.childNodes[k].attributes.szine MC színe, xml.childNodes[k].attributes.bg_alpha MC alpha csatornája,  xml.childNodes[k].attributes.menu_alpha menü alpha csatornája,  xml.childNodes[k].childNodes[0].firstChild.nodeValue a betöltendő kép vagy swf mozi töbje, xml.childNodes[k].childNodes[1].firstChild.nodeValue az elöbihez tartotó szöveg változó tömbje.


       for (i=0; i<=max; i++) {


_root["btn"+i].num = i;
_root["btn"+i].onRelease = function() {
       _root.textike.htmlText = "Betöltöttem"+" az "+xml.childNodes[this.num].attributes.neve+" menüt." + " És a " + kep[this.num] +" et.";


_root.menu_alias.menureszlet.htmlText = "Betöltöttem az "+xml.childNodes[this.num].attributes.neve+" menüt "+xml.childNodes[this.num].attributes.menum+" széles és "+xml.childNodes[this.num].attributes.magas+" magas."+" A menü szine: "+"0x"+xml.childNodes[this.num].attributes.szine+".";

 

 

Méretezés beépített mxTween -erek használata x és y tengelyre valamint alpha csatorna, szélesség, magasságra.


myTween = new mx.transitions.Tween(_root.bg, "_width", mx.transitions.easing.Regular.easeInOut, _root.bg._width, xml.childNodes[this.num].attributes.menum, 20, false);


myTween = new mx.transitions.Tween(_root.bg, "_height", mx.transitions.easing.Regular.easeInOut, _root.bg._height, xml.childNodes[this.num].attributes.magas, 20, false);


myTween = new mx.transitions.Tween(_root.alpha_mc.gomb, "_y", mx.transitions.easing.Regular.easeInOut, _root.alpha_mc.gomb._y, (xml.childNodes[this.num].attributes.bg_alpha)*-1, 20, false);


myTween = new mx.transitions.Tween(_root.menu_alias.menureszlet, "_width", mx.transitions.easing.Regular.easeInOut, _root.menu_alias.menureszlet._width, xml.childNodes[this.num].attributes.menum, 20, false);


myTween = new mx.transitions.Tween(_root.menu_alias.menureszlet, "_height", mx.transitions.easing.Regular.easeInOut, _root.menu_alias.menureszlet._height, xml.childNodes[this.num].attributes.magas, 20, false);


myTween = new mx.transitions.Tween(_root.menu_alias, "_y", mx.transitions.easing.Regular.easeInOut, _root.menu_alias._y, _root.bg._y-(xml.childNodes[this.num].attributes.magas/2), 20, false);

if (xml.childNodes[this.num].attributes.menum>800) {
       myTween = new mx.transitions.Tween(_root.menu_alias, "_x",              mx.transitions.easing.Regular.easeInOut, _root.menu_alias._x, _root._x, 20, false);

} else {
        myTween = new mx.transitions.Tween(_root.menu_alias, "_x", mx.transitions.easing.Regular.easeInOut, _root.menu_alias._x, _root.bg._x-(xml.childNodes[this.num].attributes.menum/2), 20, false);

}
_root.szin.szin.htmlText = "0x"+xml.childNodes[this.num].attributes.szine;
_root.kep_mc.loadMovie(mappa+kep[this.num]);
meretezes();
bgColor = new Color(_root.bg.bgg);
bgColor.setRGB("0x"+xml.childNodes[this.num].attributes.szine);
function meretezes() {
 


myTween = new mx.transitions.Tween(_root.kep_mc, "_width", mx.transitions.easing.Regular.easeInOut, _root.kep_mc._width, _root._width, 20, false);


myTween = new mx.transitions.Tween(_root.kep_mc, "_height", mx.transitions.easing.Regular.easeInOut, _root.kep_mc._height, _root._height, 20, false);


myTween = new mx.transitions.Tween(_root.kep_mc, "_x", mx.transitions.easing.Regular.easeInOut, _root.kep_mc._x, 0, 20, false);


myTween = new mx.transitions.Tween(_root.kep_mc, "_y", mx.transitions.easing.Regular.easeInOut, _root.kep_mc._y, 0, 20, false);


myTween = new mx.transitions.Tween(_root.kep_mc, "_alpha", mx.transitions.easing.Regular.easeInOut, 0, 100, 20, false);



           }
      };


         _root["btn"+i].onRollOver = function() {
                          this.gotoAndPlay("up");
          };
         _root["btn"+i].onRollOut = function() {
                          this.gotoAndPlay("down");
          };

     }
}


//szinezés

A szín kezelése előre beállított értékekkel és az xml ből nyert adattal.


bgColor_arr = new Array("006699", "009900", "FF6600", "D40000", "FFFF00", "FFFFFF");
     for (var i = 0; i<bgColor_arr.length; i++) {
           this["color"+i+"_btn"].id = i;
           this["color"+i+"_btn"].onRollOver = function() {
                    _root.szin.szin.htmlText = ("0x"+bgColor_arr[this.id]);
                 };
           this["color"+i+"_btn"].onRelease = function() {
                    _root.szin.szin.htmlText = ("0x"+bgColor_arr[this.id]);
                    bgColor = new Color(_root.bg.bgg);
                    bgColor.setRGB("0x"+bgColor_arr[this.id]);

                 };

}
 

//alphakezelés drag and Drop funcióval

 

A lényeg az, hogy egy gomb lenyomásával egy y tengelyen fel le lehet csúsztatni és ezzel változatni  egy MC alpha csatornáját. A gomb alap y 0 és a maximum értéke 100 mivel az alpha 0 és 100 érték közt mozog.
 

_root.alpha_mc.gomb.onPress = function(enterFrame) {
    startDrag(_root.alpha_mc.gomb, false, 0, -1, 0, -100);
};
_root.alpha_mc.gomb.onRelease = function() {
      stopDrag();
};
_root.alpha_mc.gomb.onRollOut = function() {
     stopDrag();
};

  1. Végeredmény:

 
   
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .