Toon posts:

[flash]createTextField werkt niet meer na loops en functies

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een script gemaakt dat uit een XML wat variabelen maakt en aan de hand daarvan die 1 voor 1 neerzet.

dit is de (zover relevante) code voor het laden van de XML
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
XMLread.ignoreWhite = true;
XMLread.onLoad = function(success) {
    if (success) {
        trace("xml loaded");
        processXML (XMLread);       


        trace(items_print.toString());
        trace(items_identity.toString());
        trace(items_web.toString());
        trace(items_3d.toString());
    }
}
XMLread.load('base2.xml');

makeButtonInterval = setInterval(makeButtons, 1000, title_names, items_print, items_identity, items_web, items_3d);


dit is de functie voor het maken en neerzetten van de buttons
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
function makeButtons(title_names, items_print, items_identity, items_web, items_3d) {
    for (j = 0;  j<title_names.length; j++) {
        for (i = 0; i<_root["items_" + title_names[j]].length; i++) {
            cat = title_names[j] + "_";
            trace(cat + i);
            _root.createTextField(this["item_" + cat + i],(20 + (j * 10) + i),(505 + (j * 110)),(460 + (i * 14)),105,30);
            _root["item_" + cat + i].selectable = false;
            _root["item_" + cat + i].text = this["items_" + title_names[j]][i];
            _root["item_" + cat + i].setTextFormat(format_items);
            duplicateMovieClip(basic_button, ["item_" + cat + i + "_hitbox"], (60 + (j * 10) + i))
            _root["item_" + cat + i + "_hitbox"]._x = 505 + (j * 110);
            _root["item_" + cat + i + "_hitbox"]._y = 460 + (i * 14);       
            _root["item_" + cat + i + "_hitbox"]._width = 80;
            _root["item_" + cat + i + "_hitbox"]._height = 13;  
            _root["item_" + cat + i + "_hitbox"].onRollOver = function () {
                thisName = this._name.split("_");
                _root["item_" + thisName[1] + "_" + thisName[2]].colorTo(color_item_highlight, .08, "linear");
            }
            _root["item_" + cat + i + "_hitbox"].onRollOut = function () {
                thisName = this._name.split("_");
                _root["item_" + thisName[1] + "_" + thisName[2]].colorTo(0x666666, .7, "linear");
                trace (this._name);
            }
            _root["item_" + cat + i + "_hitbox"].onRelease = function () {
                thisName = this._name.split("_");
                trace(thisName[1] + thisName[2]);
            }   
        }
        
    }
    trace("x" + _root.item_print_1._x);
    clearInterval(makeButtonInterval);  
}


eerder had ik de functie zonder XML maar alleen wat arrays niet in een functie (dus gelijk beginnend bij for()) en kom ik alles met _root aanspreken met this.
vreemd is dat de item hitboxes WEL worden neergezet en ook werken.
als ik van createTextField bv. _root.createTextField krijg ik een "type mismatch", en zoals het nu is (_root.createTextField(this["item_" + cat + i], wat eerst zonder de this[]) doet die helemaal niets.

het klinkt als een rare uitzondering. heeft iemand een idee?

  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Ik zou in ieder geval +cat+i even tussen haakjes zetten in regel 6. Had vanmiddag nog een soortgelijk gevalletje waar ie de twee waardes gewoon naast elkaar zet ipv. ze op te tellen.

Alle traces geven de gewenste waardes? Probeer eens te kijken met de debugger, kijk of je daar iets opvalt.

Verwijderd

Topicstarter
cat is een string en de naam moet iets zijn als item_print_1 of item_web_4 etc. dus ze moeten echt naast elkaar staan.
in de debugger staan maar een -paar- objects om een of andere reden, zelfs de button overlays die ik wel echt zie staan niet in de debugger object list

  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Vage shizzle! En als je alle code weglaat behalve die creatTextField?