Loading:


    Proste menu [XML][AS3]

    Proste menu stworzone we flashu

    Atuty:
    - Pionowo położenie

    - Edycja poprzez XML

    - Możliwość rozbudowania menu o dodatkowe atrybuty



    Napisz Artyku³

    Listing

    Nasz XML:
    <? xml version="1.0" encoding="urf-8" ?>

    <menu>
        <item label="funkcje.net" redirect="http://www.funkcje.net" />
        <item label="wp.pl" redirect="http://www.wp.pl" />
        <item label="onet.pl" redirect="http://www.onet.pl" />
    </menu>

    We flashu tworzymy sobie prostokąt o wymiarach 150x50 px, robimy z niego MovieClipa, nazywamy go "menuItem", wchodzimy w niego i tworzymy w nim dynamiczne pole tekstowe o nazwie "label". Oczywiście nazwy podajemy bez " ".

    Teraz przejdźmy do Actionscript:
    //Tworzy loader
    var loaderXML:URLLoader = new URLLoader();
    var dataXML:XML;
    var totalXML:Number;
    //Ładuje NaszPlik.xml do loadera "loaderXML"
    loaderXML.load(new URLRequest("NaszPlik.xml"));
    //W wypadku, gdy plik zostanie załadowany zostanie wywołana funkcja showXML
    loaderXML.addEventListener(Event.COMPLETE, showXML);
    //W przeciwnym wypadku wywołana zostanie funkcja showError - proponuję tutaj dać jakąś informację np: Plik XML nie został załadowany... sprawdź coś tam.
    loaderXML.addEventListener(IOErrorEvent.IO_ERROR, showError);

    function showError(e:IOErrorEvent):void {
        trace("plik xml nie został załadowany");
    }
    function showXML(e:Event):void {
        dataXML = new XML(e.target.data);
        totalXML = dataXML.lenght();

        createMenu();
    }
    function createMenu():void {
        for (var i:Number = 0; i<=totalXML; i++) {
            //Tworzymy nowy obiekt, który się powiela z pętlą, ten obiekt to nasz zrobiony prostokąt razem z polem tekstowym
            menuItems:menuItem = new menuItem;
            //Dodajemy "dziecko"
            addChild(menuItems);
            //Ustawiamy label.text - czyli to co ma się nam wyświetlić w polu tekstowym
            menuItems.label.text = dataXML.item[i].@label;
            //Ustawiamy oś X
            menuItems.x = 75;
            //Ustawiamy oś Y przy czym robimy to tak, żeby było zależne od pętli
            menuItems.y = (i * 50) + 5;
            //Pokazuje łapkę na MovieClipie
            menuItems.buttonMode = true;
            //Czasami jest problem w połączeniu MC + TextField i to właśnie poprawia nasze klikanie
            menuItems.mouseChildren = false;
            menuItems.mouseEnabled = true;
            //Dodajemy listenera z wywoładniem funkcji
            menuItems.addEventListener(MouseEvent.CLICK, menuItemsClick);
        }
    }
    function menuItemsClick(e:MouseEvent):void {
        //Zmienna pobierająca z pliku xml dane do przekierowania, w nawiasie kwadratowym e.target.name wyprowadzi liczbę, możecie sprawdzić dokładniej co poda dając trace(redi);
        var redi = dataXML.item[e.target.name].@redirect;
        //Tworzy URLRequest potrzebny do navigateToURL
        var targetURL:URLRequest = new URLRequest(redi);
        //Przekierowanie po prostu, targetURL odpowiada za to gdzie ma się przekierować, "_self" to rodzaj przekierowania
        navigateToURL(targetURL, "_self");
    }




    Dodano przez: anonim Ranga: 0 Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors