Adobe Flash PHP & Flash // Variable Farbwerte / OnLoad Methode des LoadVars() Objekts

M

mastaJXL

Registriert
Thread Starter
Dabei seit
16.03.2004
Beiträge
1
Reaktionspunkte
0
noch ein PHP Flash prob :-(

also ich hab eine php datei die das zurückgibt:

&output=0xbdcbd6&

und mein action script lautet:

var loader = new LoadVars()

loader.load("farbe.php");

var farb = new Color("_root.farbe");

farb .setRGB(this.output)

also wenn ich statt dem this.output einen rgb wert eingebe gehts, dann ändert er die hintergrundfarbe von einem movieclip in der root... weis einer wie ich das mit der output variable verbinde??

thx masta
 
Hi,

zuersteinmal lass mal das '&' hinter der Variable weg, das macht oft nur Ärger.

Dann würde ich dir empfehlen einen Prototype zu basteln und das ganze über setColor(); anzusprechen.

Dein Skript könnte dann so aussehen, das die Farbwerte aus der Datenbank als globale Variablen definiert werden. Der Vorteil ist, das du diese dann überall erreichen kannst.

Ich würde daher folgendes Script empfehlen:

(Swatches ist dann die Maximale Anzahl der Farben, die ausgelesen werden.)


PHP:
//Actionscript 1.0
this.onEnterFrame
	{		
	MovieClip.prototype.setColor = function(colour) 
		{
		newColor = new Color(this);
		newColor.setRGB(colour);
		};	

	var loader = new LoadVars()
	loader.load("colours.php");
	loader.onLoad=function(success)
		{
		if(success)
			{			
			for (i=0; i<this.swatches; i++)
				{
				_global["colour_"+i]=this["colour_"+i]		
				}
			}
		}
	}

Das PHP Script dazu sieht dann zb so aus:

PHP:
<?php
require_once('config.inc.php');
$db_tab='colours';
$i='0';
$read=mysql_query("select rgb_hexcode_8bit from $db_tab order by id",$handler);
    while($a=mysql_fetch_array($read))
        {
        $result.='&colour_'.$i.'='.$a['rgb_hexcode_8bit'];
        $i++;
        }
$result.='&swatches='.$i;
echo $result;
?>



Danach kannst du dann die Farben jederzeit mit dem Befehl setzen.

PHP:
//Actionscript 1.0
on(release)
	{
	_root.pfad.setColor("_global.colour_"+i);
	}


Für die 3. Farbe wäre das dann zb.

PHP:
//Actionscript 1.0
on(release)
	{
	_root.pfad.setColor(_global.colour_2);
	}


Für die erste…

PHP:
//Actionscript 1.0
on(release)
	{
	_root.pfad.setColor(_global.colour_0);
	}

Für die 1203ste… ;)

PHP:
//Actionscript 1.0
on(release)
	{
	_root.pfad.setColor(_global.colour_1202);
	}


Um auf den Fehler in deinem Script einzugehen… du hast vergessen, das die Daten doch ersteinmal da sein müssen bevor du diese dann in den konstruierten setRGB(); Befehl setzen kannst. Daher klappt ja auch ein statischer Wert. PHP Dateien lädt man in Flash am besten mit dem loadVars() Objekt und nutzt für die Aktion die onLoad Methode, die sichergeht, das erst die Daten vorliegen, bevor Aktionen ausgeführt werden.


Liebe Grüße

Yves
 
Zurück
Oben Unten