Benutzerdefinierte Suche

Adobe Flash Anleitung | wechselseitige Kommunikation zwischen Actionscript, PHP & MySQL

  1. sevY

    sevY Thread Starter

    Hi zusammen,

    hier noch ein Tutorial, das auf dieses Tutorial aufbaut.

    Dabei geht es darum, Inhalte zeitgesteuert auszulesen. Hier am Beispiel eine Flashchats, der allerdings aufgrund seines Performancehungers als Beta einzustufen ist. Das Beispiel dient also nur als Lernobjekt. Zum Testen unter realistischen Bedingungen gebe ich euch den Hinweis mit, das ich mit 25 Usern unseren dedicated SQL Server lahmgelegt habe. Teilweise waren bis zu 250 MySQL Transaktionen pro Sekunde zu verzeichnen.

    Fangen wir mit der Query.php an, die 2 Varianten des Auslesen bereitstellt, welche aus Flash gesteuert werden.

    PHP:
    <?php
    require_once('config.inc.php');
    require_once(
    'function.inc.php');
    if(
    $_POST['details']=='show')
        {
        
    $read=mysql_query("select user,timestamp,words from $db_tab order by id desc LIMIT 0,50",$handler);
        while(
    $a=mysql_fetch_array($read))
            {
            
    $result.=$a['user'].' '.$a['timestamp'].'<br>'.$a['words'].'<br>';
            }
        }
    else
        {
        
    $read=mysql_query("select user,words from $db_tab order by id desc LIMIT 0,50",$handler);
        while(
    $a=mysql_fetch_array($read))
            {
            
    $result.=$a['user'].'<br>'.$a['words'].'<br>';
            }
        }
    echo 
    '&words='.charReplace::replace(utf8_encode($result));
    ?>

    Der erste Teil des Actionscript liegt auf dem Loginbutton, der den dort eingegeben Usernamen global als Variable definiert.

    PHP:
    //Actionscript 1.0
    on(release)
        {
        if(
    _root.userName.text!='')
            {
            
    _global.user=user;
            
    this.gotoAndStop(_currentframe+1);
            }
        }
    on(keyPress '<Enter>')
        {
        if(
    _root.userName.text!='')
            {
            
    _global.user=user;
            
    this.gotoAndStop(_currentframe+1);
            }
        }

    Im 2. Frame befinden sich dann die Funktionen, die für das Auslesen und Einfügen der Mitteilungen zuständig sind, sowie die Funktion der Checkbox, die definiert, ob das loadVars Objekt detailierte oder minimale Informationen (Datum, Uhrzeit) abfragen soll.

    PHP:
    //Actionscript 1.0
    var details=this.attachMovie('FCheckBoxSymbol','details',1);
    details._x=52;
    details._y=380;
    details.setLabel('Details');
    details.setChangeHandler('detailsBox');
    var 
    detailsBox=function()
        {
        if(!
    details.getValue())
            {
            
    _global.details='hide';
            }
        else
            {
            
    _global.details='show';
            }
        }
    details.setValue(true);
    MovieClip.prototype.read=function()
        {
        var 
    readContent=new LoadVars();
        
    readContent.object=this;
        
    readContent.details=_global.details;
        
    readContent.sendAndLoad('query.php'readContent'POST');
        
    readContent.onLoad=function()
            {
            
    _root.main.htmltext=this.words;
            
    _root.read();
            
    delete this.object['readContent'];
            }
        }
    MovieClip.prototype.insert=function()
        {
        if(
    _root.userInput.text!='')
            {
            var 
    insertContent=new LoadVars();
            
    insertContent.object=this;
            
    insertContent.words=words;
            
    insertContent.user=_global.user;
            
    insertContent.sendAndLoad('insert.php'insertContent'POST');
            
    insertContent.onLoad=function()
                {
                
    _root.userInput.text='';
                
    delete this.object['insertContent'];
                }
            }
        }
    this.read();
    this.stop();

    Neu ist hier also das Nutzen der Checkbox und die Integration ihrer onChangeHanlder in das LoadVars Objekt, welches mit sendAndLoad() eine wechselseitige Kommunikation mit PHP erlaubt. Wenn man nun eine stetige Refreshrate haben möchte, kann man entweder ein Interval für den Aufruf des Read Prototypes setzen, oder aber, man schreibt den Funktionsaufruf in einen onEnterFrame Handler, was allerdings zu den o.g. kritischen SQL-Queries führen wird.


    Viel Spaß.


    Liebe Grüße

    Yves
     
    sevY, 16.07.2004
Die Seite wird geladen...
Ähnliche Themen - Anleitung wechselseitige Kommunikation
  1. xR8y
    Antworten:
    0
    Aufrufe:
    1.126
  2. Manjo
    Antworten:
    2
    Aufrufe:
    524
  3. sciuk
    Antworten:
    2
    Aufrufe:
    659
  4. nlphansli
    Antworten:
    4
    Aufrufe:
    679
  5. arne1900
    Antworten:
    3
    Aufrufe:
    932
    Colonel Panik
    26.05.2005