Toon posts:

[Flash] loadVariables en string vs integer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een project ben ik bezig met een Flash-applicatie waar kinderen een eigen icoon kunnen maken, waarna dit vervolgens in een 360g afbeelding ingevoegd kan worden. Hiervoor maak ik gebruik van een combinatie van ASP en Flash.
Ik loop nu echter tegen een probleem aan bij het uitlezen van externe waardes. Gegevens die ik wegschrijf met ASP en vervolgens met loadVariables in Flash ophaal worden netjes opgehaald. Zodra ik echter gebruik wil maken van de waardes als integer gaat het mis.
Het probleem is dat ik de externe waardes niet kan converteren naar een int met parse

Ik heb even een voorbeeld online gezet en hieronder staat een gedeelte van mijn ActionScript. In het voorbeeld online kun je zien dat de vars "legs" en "body" wel gewoon netjes doorgegeven worden, alleen zou het figuurtje in het midden een andere middenstuk en onder'lijf' moeten krijgen...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (id != "") {
    //// Get information from DB
    //loadVariables("load_personage.asp?id="+id, _root);
    hair = 0;
    head = 0;
    body = 0;
    legs = 0;
    loadVariables("test.txt", _root);
    
    body = parseInt(body);
    legs = parseInt(legs);
        
    with (Character) {
        Hair.gotoAndStop(0);
        Head.gotoAndStop(0);
        Body.gotoAndStop(body);
        Legs.gotoAndStop(legs);
        // Show character
        _visible = true;
    }
}

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Waarschijnlijk wordt het type van body en legs op string gezet. Vervolgens doe je een parsint, maar dit word weer in dezelfde var opgeslagen. Je maakt er dus een int van en dit wordt vervolgens weer in een string gezet!

Probeer de vars die je uitleest eens legsStr en bodyStr te noemen zodat de int vars en de string vars verschillende zijn.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

Kan wel zoals je het hebt gedaan, maar probeer Number() eens....

Waarschijnlijk meer succes :)

Verwijderd

Topicstarter
Janoz schreef op 14 januari 2004 @ 14:41:
Waarschijnlijk wordt het type van body en legs op string gezet. Vervolgens doe je een parsint, maar dit word weer in dezelfde var opgeslagen. Je maakt er dus een int van en dit wordt vervolgens weer in een string gezet!

Probeer de vars die je uitleest eens legsStr en bodyStr te noemen zodat de int vars en de string vars verschillende zijn.
Helaas lost dat het probleem niet op. Zodra ik de strings een andere naam geef en ze vervolgens parse krijg ik 0 als waarde. Flash lijkt de waardes gewoon niet als numeriek te herkennen....

Verwijderd

Topicstarter
tie-rep schreef op 14 januari 2004 @ 14:45:
Kan wel zoals je het hebt gedaan, maar probeer Number() eens....

Waarschijnlijk meer succes :)
Ook dat werkt helaas niet, zelfde probleem als met parseInt... :(

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

ah, oke ik denk dat ik het weet.

Omdat je de vars laadt in het zelfde stukje script, is de waarde waarschijnlijk nog niet binnen.

Dus even de stukjes script uit elkaar halen en dat zetten van de avatar een paar frames later....

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 14 januari 2004 @ 14:45:
[...]


Helaas lost dat het probleem niet op. Zodra ik de strings een andere naam geef en ze vervolgens parse krijg ik 0 als waarde. Flash lijkt de waardes gewoon niet als numeriek te herkennen....
Dat vind ik heel vreemd. Vooral omdat het in het vorige geval wel de juiste waarde terug gaf, maar met het verkeerde type. Het doet bij mij het vermoeden dat je toch een typefout hebt gemaakt eigenlijk, maar ik zou het verder ook niet weten. Probeer dit eens:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (id != "") {
    //// Get information from DB
    //loadVariables("load_personage.asp?id="+id, _root);
    hair = 0;
    head = 0;
    body = 0;
    legs = 0;
    loadVariables("test.txt", _root);
    
    bodyInt = parseInt(body);
    legsInt = parseInt(legs);
        
    with (Character) {
        Hair.gotoAndStop(0);
        Head.gotoAndStop(0);
        Body.gotoAndStop(bodyInt);
        Legs.gotoAndStop(legsInt);
        // Show character
        _visible = true;
    }
}


--edit--

idd zie hierboven. Dat is waar ook. Zorg dat je als laatste een ready=true zet oid en wacht tot ready==true. Dan weet je zeker dat alles ingeladen is...

[ Voor 9% gewijzigd door Janoz op 14-01-2004 15:02 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Pffff. Heel erg bedankt heren! Het werkt nu inderdaad :) :) ...

Ik heb overigens inderdaad ook de naam van de integers moeten wijzigen. De string heeft nu een andere naam dan de integer...

[ Voor 53% gewijzigd door Verwijderd op 14-01-2004 15:17 ]

Pagina: 1