Det är tusen grejer som kan va fel. Får du några felmeddelanden på dina ASP/PHP-sidor eller vad du nu använder?
Gör en enkel testsida där du kollar att det verkligen går att läsa från databasen.
22 svar · 585 visningar · startad av Type
Hej!
Jag har som vanligt sökt men inte hittat det jag söker efter...
Jag läser från en mysql-databas och allt går bra lokalt... När det ligger på webbservern skrivs inget ut tyvärr...
vad beror det på o hur löser man det?
Det är tusen grejer som kan va fel. Får du några felmeddelanden på dina ASP/PHP-sidor eller vad du nu använder?
Gör en enkel testsida där du kollar att det verkligen går att läsa från databasen.
Du får ursäkta att jag va lite otydlig förut... Trodde det va lättare än så...
Det jag menar är när det funkar lokalt är att den ändå går o hämtar från en php-sida på servern (tror jag)...
Jag har skrivit detta på ett lager på samma framenummer:
loadVariablesNum("http://www.straxunder.com/flash/spelningar.php", 0);
Sen om jag testkör (ctrl+enter) i flash så får jag upp rätt text i dynamiska textfältet(som jag döpt till spelningar) men om jag kör swf-en på servern får jag inte upp något...
php-filen ser ut så här:
<?
session_start();
// inkluderar en connection...
$datum = date("Y-m-d H:i");
$sel = mysql_query("SELECT * FROM spelningar WHERE (datum < '$datum') order by datum DESC");
$antal=mysql_affected_rows();
//$pri=mysql_result($sel,0,"info");
$pri=mysql_fetch_object($sel);
//$formattext = rawurlencode($pri);
print("spelningar=$pri->info");
?>
php-sidan ger inget felmeddelande utan skriver ut det den ska...
Några idéer?
Har du någon preloader eller så som kollar så att allt är inladdat i filmen?
Nix... men jag ska ha det sen...
Jag tror det har o göra med sökvägen... kan det va det?? Att man ska ange en annan sökväg om de ligger i samma mapp... eller nåt sånt... ?
Har du ingen preloader så är det inte säkert att datan har hunnit laddats in i filmen, gör en först(är ju inte allt för svårt) och testa. Det går ju ganska mycket snabbare lokalt när man testar och då kanske filmen hinner ladda in datat men sen på webbservern är det inte säkert att den hinner.
Vad ska jag göra först? Preloader? Hmm. Då till nästa problem... Jag har inte riktigt lyckats med det... Har vart på väg men nu står preloaden bara o går upp till 99 o sen börjar om igen... Det är ett MC o det står att den ska:
_parent.gotoAndPlay(2);
Jag tycker att det borde gå... Men som sagt, den står bara o laddar hela tiden... ska kolla vidare lite.. jag har nämligen en fungerande version men den går inte att föra över.. inte hittills iaf :)
Jag har provat att som du sa använda en preloader... Detta gjorde jag på min enda fungerande preloader :) Det funkade!!! Tack Mika3l, du hade helt rätt! Den hann helt enkelt inte ladda in texten... :P
Np, bra att det löste sig. :)
Hmm. Det hade inte löst sig.. Jag testade o lägga rutan med text på förstasidan (där jag har en fungerande preloader) och där funkade det... Men på spelningar.fla där den ska ligga går det inte att få in någon text när man är på servern... hur jag än gör.. Jag har lagt in samma preloader som på förstasidan... Så det kan inte va problem. vad kan det va för problem? Det visas ingen text alls... På förstasidan fungerar det tom på webservern! Något fel på spelningar.fla?
RED.
Jag har en fundering på vad som kan va fel... Jag läser in swf-er i olika nivåer... Jag läser in menyn på nivå 10 och alla sidor (hem, länkar, gästbok) på nivå 1. Sen försöker jag läsa in text från databasen på nivå 0 men om något redan ligger på nivå 0, har ju läst in text på den nivån redan på index-sidan så kanske det inte går att läsa in på nytt? Hur fungerar nivåer?? Hur ska jag lösa det?
/RED.
När du läser in text från en server måste du komma ihåg att vänta på variablerna. När du läser in dem lokalt så kommer variablerna att hinna läsas in redan till nästa kod rad. Men när du läser från en server så tar detta längre tid. Eftersom då måste Flash skicka en request till servern, servern hitta och behandla/skicka sidan, och flash ta emot och tolka variablerna.
Så du måste alltså antingern ha en frameloop som kollar om en specifik(den sista) variabel anlänt eller, vilket jag rekomenderar, använda en event-hanterare som avfyras när variablerna har anlänt. Använder du MX(publicerar för player 6) så använd loadVars- objektet. I Flash 5 så brukar jag använda en dummyfilm med ett onClipEvent(Data) på. Genom att då ladda in variablerna i detta filmklipp så "avfyras" onClipEvent(data) automatiskt(samma gäller med LoadVars men då heter det onLoad, se referensen för mer detaljer om LoadVars).
Vad gäller nivåer(_level#) så kan man säga att de helt enkelt är vanliga movieclips. De har till och med en egen depth gemtmot varandra så att level 0 inte måste ligga längst ned. Åtminstone funkar det i MX.
/Mirandir
Mirandir: Jag har Flash MX och ska använda loadVars-objektet verkar det som.. Jag vet inte hur en event-hanterare fungerar.. Jag läser in texten via:
loadVariablesNum("http://www.straxunder.com/flash/spelningar.php", 0);
Det är inte det du menar?
En event hanterare kan beskrivas som en funktion som exekveras när en särskilld händelse inträffar. Som t.ex. att data laddas in i en tidslinje. I flash 5 så finns det dels knapp händelser som man lägger på knapparna med on() och filmklipps händelser som man lägger på filmklipp med onClipEvent(). Se referensen för detaljer. I MX finns det även möjlighet att dynamiskt lägga på eventhanterare genom att definera metoderna onRelease, onData, onEnterFrame etc. etc. Det finns även möjlighet att skapa dynamiska händelser men det är lite överkurs...
Vad gäller LoadVars så är det relativt enkelt att använda. Den laddar in variablerna och avfyrar en händelse när detta är klart. Den stora fördelen med LoadVars är att den även talar om ifall inladdningen misslyckades så att du kan felhantera.
[i]// skapa en instans av LoadVars()[/i]
var myVars = new LoadVars();
[i]// skapa en hanterare som avfyras när variablerna laddat klart:[/i]
myVars.onLoad(success)
{
if(success)
{
[i]// Om inladdningen av variablerna lyckades så kan vi
// Distubiera ut variablerna ur objektet och tala om att vi
// nu är klar att fortsätta.
// exempel på att skicka en variabel(myVariable) från detta
// objektet till huvudtidslinjen:[/i]
_root.myVariable = this.myVariable;
[i]// I detta exempel talar vi om att laddningen är klar
// genom att spela _root.[/i]
_root.play();
} else {
[i]// någonting gick fel och variablerna kunde inte laddas/tolkas
// exempel på felhantering[/i]
_root.errorMessage = "loading failed"
_root.gotoAndPlay("error");
}
}
[i]// stoppa tidslinjen i väntan på variablerna.[/i]
stop();
[i]// slutligen så laddar vi in variablerna.[/i]
myVars.load("http://www.straxunder.com/flash/spelningar.php");
/Mirandir
Mirandir:
Jag tackar dig för ditt exempel. Jättebra! Nu har jag dock lite frågor eftersom jag inte får det att funka...
Var ska jag lägga in den där koden? Jag har lagt den i ett MC som ligger på den framen där jag vill att texten ska laddas in... Visas ska den senare men just laddas in... För att därifrån sen välja om det gick bra eller inte...
Måste man inte sen skicka den inladdade filen spelningar.php till _root på något sätt?
Du får ursäkta att jag är så trög /Erik
Är det jag som är dum eller varför fungerar det inte?
Jag har kommit på att swf:en spelningar.swf som laddas in från meny.swf läser in texten rätt från databasen när jag BARA tittar på den swf-en, men när den laddas in från meny.swf så visas ingen text! Kan detta ha o göra med nivåer eller vad beror det på?
spelningar.swf, laddas den in i en nivå eller till ett filmklipp??
Den laddas in till en nivå.. till nivå 0...
Jag har kommit på att swf:en spelningar.swf som laddas in från meny.swf läser in texten rätt från databasen när jag BARA tittar på den swf-en, men när den laddas in från meny.swf så visas ingen text! Kan detta ha o göra med nivåer eller vad beror det på?
Japp. Tänk på att nivåer(level) alltid är relativt den film som laddas in först eller som senare laddas in i nivå 0. Dessutom så finns det alltid endast en _root per nivå. T.ex. om du laddar in en swf i ett filmklipp i en annan swf så kommer den inladdade filmen att agera som om det var inlaggt filmklippet när filmen skapades. Dvs att _root pekar på huvudtidslinjen på den "huvudfilm" som laddade in swf:en.
En tredje sak har att göra med nivå 0(level 0) Att ladda in en film i denna nivå får flash att radera allting, alla variabler, nivåer filmer, allt tas bort och flashplayern börjar helt enkelt om.
Hur ser skriptet ut där swf:en respektive variablerna laddas in?
/Mirandir