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

Dieses Thema im Forum "Flash and Actionscript" wurde erstellt von mastaJXL, 16.03.2004.

  1. mastaJXL

    mastaJXL Thread Starter MacUser Mitglied

    Beiträge:
    1
    Zustimmungen:
    0
    MacUser seit:
    16.03.2004
    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
     
  2. sevY

    sevY Gast

    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=0i<this.swatchesi++)
                    {
                    
    _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
     
Die Seite wird geladen...

Diese Seite empfehlen