PDA

Volledige versie bekijken : probleem flash/php/mysql


ndesigns
%Europe/Berlin %414 %2006, 10:56
Beste flashreakers, ik ben op stage bezig met een project waarbij flash en php elkaar moeten combineren, opzich geen punt mijn probleem ligt hem nu eigenlijk in flash. Ik heb de Nederlandse landkaart die uit 12 provincies bestaat. In de CMS kan je aan elke provincie projecten toevoegen. Nu is het zo dat in flash al deze provincies een animatie hebben, deze zoomen namelijk in. Mijn opdracht is wanneer er projecten aanwezig zijn in deze provincie dat deze provincie moet inzoomen, zoniet dan moet hij niet inzoomen.


Hoe kan ik dit doen? Ik heb de fla file even toegevoegd voor diegene die willen weten hoe alles werkt.

Ik hoop dat iemand mij hierbij kan helpen.

ndesigns
%Europe/Berlin %494 %2006, 12:51
niemand die mij hierbij kan helpen? ik kom er namelijk echt niet uit heb echt van alles en nog wat geprobeerd.

zendmaar
%Europe/Berlin %498 %2006, 12:58
Juist eens beginnen kijken.
Misschien als bijzaak maar je z coordinaat van sommige van je labels is nog verkeerd.

zal hier proberen zo snel mogelijk op te antwoorden :)

moonwalker
%Europe/Berlin %500 %2006, 13:00
Ik heb je bestand niet bekeken, maar als je met PHP werkt en ik neem aan dat er een database aan gekoppeld is, dan zou je in de database een ENUM veld kunnen zetten met Ja en Nee. Je laadt dan de gegevens in Flash en met IF functie kun je aangeven of hij wel moet inzoomen of niet.

Hopelijk heb je hier wat aan.

zendmaar
%Europe/Berlin %500 %2006, 13:00
Even een vraagje:

waar juist haal jij je provincie's op waar er iets te doen is?

ik zie nergens een array of php pagina waar je kan controleren of er inderdaad iets te doen is [?]

moonwalker
%Europe/Berlin %502 %2006, 13:02
Hij gebruikt CMS. Ik denk dat hij een MySql database aan heeft hangen waar alles in staat...

ndesigns
%Europe/Berlin %503 %2006, 13:05
@zendmaar dat klopt idd het is door middel van mysql. Het vage is dus dat wanneer ik dit test in een nieuwe flash bestand en een variabel meegeef van var numrows =0 en ik maak een if en else statement dan doet hij wel.. maarja ik kom er simpwelgniet uit:S

erg bedankt voor het helpen.

dat klopt sommige labels kloppen niet maar gaat eerst dat die werkt daarna kan ik alles fixen.

Het vage is dat ik een dynamische tekstveld heb gemaakt en hierbij heb ik geteld in hoeveel provincies een project toegevoegd is, en dit werkt dus prima. Ik weet namelijk niet wat ik over het hoofd zie.

zendmaar
%Europe/Berlin %504 %2006, 13:06
Ja, maar dan nog moet je toch in je mc te weten komen in welke regio's er al of niet iets te doen is.
Momenteel zie ik enkel op ieder plaatje een rollover command.
Er wordt niet getest of er iets te doen is of niet.
Het kan ook gewoon niet omdat hij niet over die gegevens beschikt in z'n mc.
Tenzij ik er naast kijk natuurlijk :) maar dan nog is er geen controle of er al dan niet iets te doen is. Er is direct de rollover.

moonwalker
%Europe/Berlin %505 %2006, 13:07
Dus als ik het goed begrijp heb jij in je database een veld waar je aan geeft of er projecten zijn of niet? En die veld vraag je op en je gebruikt een if/else statement om wel in te zoomen of niet? Wat doet het niet dan?

Edit: Ik krijg de fla niet geopend. Ben op stage en ze werken hier nog met Flash 2004.

zendmaar
%Europe/Berlin %508 %2006, 13:11
ik ga hier even de code posten zodat je verstaat wat er gebeurd moonwalker:

on (rollOver)
{
_root.provincie = 1;
_root.x = _root.x + 2;
_root.zl.swapDepths(_root.x);
}
on (rollOut)
{
_root.provincie = 0;
}
on (release)
{
getURL("projecten.php?info=projectlist&ID=9");
}

zoals je dus kan zien is er altijd een rollover want er is geen test tegen het al dan niet aanwezig zijn van een project.

Ik heb ook geen enkele plek gevonden waar de gegevens uit de database in flash geimporteerd worden. Dus heb je geen gegevens om tegen te testen. Eerst moet je zorgen dat je de gegevens in flash zelf hebt voor je kunt testen toch?

ndesigns
%Europe/Berlin %508 %2006, 13:12
@zendmaar, http://www.game-it.nl/kaartje_test.rar hier kan je het bestand vinden waar ik momenteel mee werk en daar zit de check dus wel in.

// rollover
on (rollOver) {
if(numrows>0) {
_root.provincie = 1;
_root.x += 2;
_root.gr.swapDepths(_root.x);
}else{
_root.provincie = 0;
}
}
// rollout
//on (rollOut) {
//_root.provincie = 0;
//}

// on release
on (release) {
getURL("projecten.php?info=projectlist&ID=1");
}

hij gebruikt loadvars om de variabelen uit de php bestand te halen

loadVariablesNum("projecten.php", 0, "GET");

moonwalker
%Europe/Berlin %509 %2006, 13:13
Juist...en dat kun je doen aan het begin door loadvars te gebruiken. Ik deed het altijd door alles op de eerste frame op te halen zodat het beschikbaar wordt voor de rest van de movie. Want nu heb je pas iets te testen wanneer je de knop loslaat en dat is niet de bedoeling. :)

Hopelijk maakt dat het duidelijker.

zendmaar
%Europe/Berlin %512 %2006, 13:17
kun je anders eens je output van je php file posten?
dan kan ik eens een aantal zaken proberen

of de url?

ndesigns
%Europe/Berlin %512 %2006, 13:18
@moonwalker dat weet ik idd dat klopt hij moet het checken voordat er op de knop wordt gedrukt dus in flash deed ik het volgende.

// rollover
if(numrows>0) {
on (rollOver) {
_root.provincie = 1;
_root.x += 2;
_root.gr.swapDepths(_root.x);
}else{
_root.provincie = 0;
}
}
// rollout
//on (rollOut) {
//_root.provincie = 0;
//}

// on release
on (release) {
getURL("projecten.php?info=projectlist&ID=1");
}

maar dan geeft flash dus een error



ERROR IN FLASH

**Error** Scene=Scene 1, layer=Layer 42, frame=1:Line 7: 'else' encountered without matching 'if'
}else{

**Error** Scene=Scene 1, layer=Layer 42, frame=1:Line 2: Statement must appear within on handler
if(numrows>0) {

Total ActionScript Errors: 2 Reported Errors: 2

ndesigns
%Europe/Berlin %514 %2006, 13:21
@zendmaar ik heb het project helaas locaal draaien.. maar ik ga kijken of ik hem ergens kan uploaden.

moonwalker
%Europe/Berlin %519 %2006, 13:27
Je IF statement moet in de ON handler zitten :)

zendmaar
%Europe/Berlin %521 %2006, 13:30
even ter verduidelijking:

/////////////////////////////////////
on (rollOver) {
if(numrows>0) {
/////////////////////////////////////
_root.provincie = 1;
_root.x += 2;
_root.gr.swapDepths(_root.x);
}else{
_root.provincie = 0;
}
}

kheb haakjes gezet omdat je het duidelijk zou zien.
want je vermelde hetzelfde als z'n error.
Ik dacht dat hij dus misschien niet zou snappen wat je bedoelde :p

met alle credz naar moonwalker dus :p

ndesigns
%Europe/Berlin %524 %2006, 13:35
ja en dat doe ik dus hiervoor.. ik ben nu momenteel bezig om de site over te zetten naar die van mij ... kan even duren maar als die klaar is horen jullie het alvast erg bedankt om me hierbij te helpen.

moonwalker
%Europe/Berlin %534 %2006, 13:49
@zendmaar: geen probleem hoor. ;)

@ndesigns: ook geen probleem. Succes alvast...

ndesigns
%Europe/Berlin %548 %2006, 14:09
@moonwalker, ik mag helaas de site niet uploaden vanwege copyright rechten en dergelijke ik ben bang dat we het zo moeten doen:( ik hoop dat nog steeds mensen mij hierbij willen hlpen.

zendmaar
%Europe/Berlin %549 %2006, 14:10
kun je even de output posten van je php pagina - de vars enzo dat flash daadwerkelijk ontvangt

ndesigns
%Europe/Berlin %574 %2006, 14:47
Flash ontvangt de volgende variabelen

$gevuld en $provincie en in dit geval ook numrows om te controleren maar hoe dat precies gaat weet ik dus niet.

<?php
// controleer of er nieuws in een provincie is toegevoegd
// we stellen hier even van te voren alvast noord-holland als voorbeeld !
//$provincies = array(1,2,3,4,5,6,7,8,9,10,11,12);
$gevuld="";
for ( $i = 1; $i <= 12; $i++ ) {
$controleer = "SELECT projectNAAM, projectID FROM projecten WHERE provincieID='$i' AND projectARCHIEF=0";
$check = mysql_query($controleer) or die (mysql_error());
$numrows = mysql_num_rows($check);

if($numrows>0) {
//echo "er is een project in ".$i."<br /> ";
//$aap = $i
$gevuld.=$i.", ";
}
}
?>


// HIERONDER FLASH

gevuld = _level0.gevuld.toString();
if (gevuld == ""){ gevuld = "leeg"; }
subc = gevuld.split(', ');
c = subc[3];
var aantal = subc.length;

met het bovenstaande AS conferteer ik gevuld naar string en var aantal telt dan in hoeveel provincies er projecten aanwezig zijn, en die doet eht dus wel goed want hij laat nu in dynamisch tekstveldje 7 zien en dat klopt als ik de db kijk.

zendmaar
%Europe/Berlin %584 %2006, 15:01
wat ik zou doen is de gegevens (eens in flash) in een array stoppen.
En bij je rollover kijken of die provincie in je array voorkomt..

ndesigns
%Europe/Berlin %587 %2006, 15:06
@Zendmaar hoe zou ik dat kunnen maken? gegevens vanuit de php file in array stoppen en kijken of deze overeenkomen?

Ik heb ook een screenshot gemaakt met wat ik bedoel.

deze kan je http://www.game-it.nl/saricon.JPG vinden.

De Kale
%Europe/Berlin %590 %2006, 15:09
Ik heb je bestand niet bekeken, maar als je met PHP werkt en ik neem aan dat er een database aan gekoppeld is, dan zou je in de database een ENUM veld kunnen zetten met Ja en Nee. Je laadt dan de gegevens in Flash en met IF functie kun je aangeven of hij wel moet inzoomen of niet.

Hopelijk heb je hier wat aan.
een enum veld speciaal om te zeggen dat er iets in het veld staat...
dat klinkt als een niet genormaliseerde database.... je weet namelijk al of er iets is of niet.... het enum veld is dus overbodig :)

moonwalker
%Europe/Berlin %597 %2006, 15:19
Oh ja natuurlijk...Kan ook met if(!naamveld){....

Sorry...my bad...