Toon posts:

[Actionscript] loadMovie met (php,mysql) variabele

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een movieclip "mcItems" waarin een dynamisch tekstveld zit en een movieclip "mcHolder". Bij een bepaalde button (in de root) heb ik een actie dat ie iets uit de database gaat halen en dat ie "mcItems" gaat afspelen. Hij haalt netjes de variabele op uit de database en deze wordt ook netjes geladen in het dynamische tekstveld dat staat in mcItems.

Echter, als ik dezelfde variable in "mcItems" wil gebruilken voor een loadMovie wil dat niet werken. Ik gebruik het volgende:
code:
1
2
3
itemNaam = link+".jpg";
loadMovie(itemNaam, mcHolder);
stop();


De variable "link" is zeker gezet want hij wordt wel geladen in het tekstveld dat in dezelfde movieclip zit (mcItems).

Wanneer ik "link" zelf definieer werkt het wel.
code:
1
2
3
4
link = "bedframes01";
itemNaam = link+".jpg";
loadMovie(itemNaam, mcHolder);
stop();


Er zit toch geen verschil in het ophalen van een variable in een tekstveld en via het script veld :S

Verwijderd

kan het er niet mee te maken hebben dat de variabele nog niet beschikbaar is op het moment van aanroepen van de loadMovie? het duur nl even voordat het verkeer tussen php en flash is afgerond. de variabele in het tekstveld blijft dan ook leeg totdat de variabele beschikbaar is, maar dat gaat (lokaal) zo snel dat je niet ziet dat hij even leeg blijft.

Verwijderd

Topicstarter
ja ik werk lokaal, maar dat ie even leegblijft is niet het probleem. De variabele wordt wel geladen.
Wel in het tekstveld, maar niet in de loadMovie.

Als ik de movie test in flash zelf laat het tekstfield zien (wat betekent dat het werkt):
code:
1
". urlencode($link);

Ook krijg ik een output melding:
code:
1
Error opening URL "file:///C|/webroot/ikea/.jpg"


Als ik logisch nadenk moet ie juist het volgende laten zien:
code:
1
Error opening URL "file:///C|/webroot/ikea/". urlencode($link);.jpg"

Verwijderd

doe je het via testMovie, of bekijk je het resultaat in een browser?

Verwijderd

Topicstarter
Ctrl+Enter krijg ik dat urlencode te zien (dat betekent dat het werkt).

In mijn browser krijg ik gewoon netjes de output van mijn query te zien.

Het werkt gewoon goed in het tekstveld maar flash vind het niet leuk om die variabele te gebruiken bij een loadMovie :S

ik heb hier iemand gevonden die hetzelfde probleem heeft: Klik hier

[ Voor 22% gewijzigd door Verwijderd op 02-12-2004 16:07 ]


Verwijderd

ik begrijp niet helemaal wat je bedoelt met "het tekstveld laat urlencode($link) zien dus het werkt". Nog even voor de duidelijkheid: hoe vang je af dat de loadMovie pas wordt aangeroepen nadat de communicatie met php beeindigd is?

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 02 december 2004 @ 16:14:
ik begrijp niet helemaal wat je bedoelt met "het tekstveld laat urlencode($link) zien dus het werkt". Nog even voor de duidelijkheid: hoe vang je af dat de loadMovie pas wordt aangeroepen nadat de communicatie met php beeindigd is?
Als ik via Ctrl + Enter test dan werkt het niet omdat ik niet via een html test. Als ik het in mijn browser test als de swf in een html is ingeladen werkt het wel. Maar dat terzijde... hij haal de variabele goed op uit de php.

Ik vang niet op dat loadMovie pas wordt geladen als de communicatie met php is beeindigd... hoe ga ik dat doen ? Ik zat ook al te denken aan een onClipEvent

Verwijderd

ik weet niet of je gebruik maakt van loadVariables of een loadVars object. een loadVars object heeft een event onLoad, wat wordt aangeroepen op het moment dat alle data binnen is. bij loadVariables kun je in je bv voor het aanroepen van loadVariables een variabele zetten isReady=false; je php-file laat je dan als allerlaatste een variabele isReady=true doorgeven. na het aanroepen van loadVariables maak je een loopje, dat steeds wordt herhaald totdat isReady true is. daarna kun je dan je loadMovie aanroepen, want dan weet je dat je variabale binnen is.
Checken dmv een textfield of een variabele binnen is is een beetje misleidend. je ziet dan nl wel dat de variabele uiteindelijk binnenkomt, maar niet precies of hij op tijd binnen is.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 07:59

Janoz

Moderator Devschuur®

!litemod

Het is behoorlijk common practice en had je met een beetje zoekwerk ook wel kunnen vinden ;).

Voor je communicatie zet je ready op false. In je communicatie stuur je ook een ready=true mee. In de tussentijd laat je een loading animatie lopen totdat de boolean waar is.

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


Verwijderd

Topicstarter
Nou, common practice zal het wel zijn dan maar ik krijg het nog steeds niet werkend...

Op de button heb ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
on (release) {
    
  _root.isReady = false;
    
  var 
  c = new LoadVars();
  ruimte = "slaapkamer";
  loadVariables("query.php", _root, "POST");
    
  _root.mcItems.gotoAndStop(1);
        
}


Van de php krijg ik de variabele link terug met als waarde:

code:
1
bedframe01


in frame 1 van mcItems heb ik het volgende:

code:
1
2
3
4
5
if (_root.isReady == true) {
    gotoAndStop(2);
} else {
    gotoAndPlay(1);
}


in frame 2 van mcItems heb ik het volgende:

code:
1
2
3
itemNaam = _root.link+".jpg";
loadMovie(itemNaam, _root.mcItems.mcHolder);
stop();


Het tekstveld dat zich in mcItems bevind heb ik als variable isReady gegeven om te kijken of ie inderdaad van false naar true verspringt...

Wanneer ik de movie in mijn browser bekijk en ik druk op de button dan zie ik ook inderdaad van false (0) naar true (1) verspringen.. alleen de loadMovie werkt nog steeds niet... de variabele link is echt geladen want als ik die in een tekstveld zet laat ie die netjes zien...

Ik kom er echt niet uit... ik heb gezocht op verschillende fora en best veel mensen met hezelfde probleem gezien maar geen duidelijke oplossing.. en beter nog.. WAAROM dit niet werkt....

[ Voor 3% gewijzigd door Verwijderd op 02-12-2004 17:52 ]

Pagina: 1