ETH Zuerich - Startseite
Professur für CAAD

 


caad d-arch


Caad Teaching
 

 
Bachelor of Architecture: CAAD II ss07

 
Master of Advanced Studies
in Architecture, CAAD


 
DWF-Processing
Programmieren statt Zeichnen


 
Graustufen - Ein Atlas
Schweizer Wohngebäude als XML Daten


 
DWF- Denken in Systemen:
In Collaboration with the Technical University Vienna


 
Seminarwoche:
BlowUp


 
Archiv

 
Caad Projects
 

 
Theory
 
Design
 
Building
 
Practice

 
Related pages
 

 
Swiss Federal Institute of Technology Zurich
 
Institute of Building Technology
 
Faculty of Architecture

 
Other pages

 










hbt d-arch

REPLAY: bild-o-mat workshop

Ablauf/Zeitplan | Ressources | Downloads |


Daten, Mapping usw...

Eure Bilddaten auf CD-ROM: DaTen
Mapping Eurer IPTC-Felder zur EasyDB: Mapping easyDB
Handbuch zum Ausfüllen des XML-Dokumentes und der EasyDB-Felder: Handbuch

Ablauf Workshop

Beginn Montag, den 14.2. um 9 Uhr
Ort: E 65

1.Woche: Konzept und Umsetzung

Montag, den 14.2.05 9 Uhr Flash, ext. Libary, ext. actionScript ab 14 Uhr Konzeptbesprechung in Einzelgruppen
Dienstag, den 15.2.05 9 Uhr Flash mittags Einzelbesprechung nach Bedarf
Mittwoch, den 16.2.05 9 Uhr Datenbanken mittags Einzelbesprechung nach Bedarf
Donnerstag, den 17.2.05 9 Uhr Ergänzen der Metadaten ab 14 Uhr erste Zwischenpräsentation
Freitag, den 18.2.05   Einzelbesprechung nach Bedarf .  

2. Woche: Umsetzung und Präsentation
Montag, den 21.2.05   Einzelbesprechung nach Bedarf .
Dienstag, den 22.2.05   Einzelbesprechung nach Bedarf .
Mittwoch, den 23.2.05   Einzelbesprechung nach Bedarf .
Donnerstag, den 24.2.05   Vorbereitung der Präsentation .
Freitag, den 25.2.05 9 Uhr Schlußpräsentation mit Gästen Ort E 15.1



ActionScript Ressources


Für den replay Workshop wird euch die Kommunikation mit der Bilderdatenbank 'easyDB' zur Verfügung gestellt.
Um diese Funktionalität zu nutzen müsst ihr im ersten Frame eurer Animation die entsprechende ActionScript Datei mit dem #include Befehl einbinden. Zum Beispiel:
     #include "connectEasyDB_v0.01.as"

AlteVersionen


NEU

  • connectEasyDB_v1.0.as:
    • Anwendungen:
      • FUNKTION: _askEasyDB(myColumn:String, myArg:String [, myStyle:String, myTargetArray:Array, myTargetFunction:Function, myMode:String, myLimit])
        • stellt eine einfache Anfrage an die Datenbank(genau genommen an ein php Script, welches die Kommunikation mit der datenbank übernimmt), zum Beispiel: askEasyDB("Titel","freak");
        • die zusätzliche Parameter erlauben jedoch eine genauere Abfrage. Neu ist die Angabe eines Arrays in welches die Informationen abgelegt werden können und die Angabe einer Funktion, die ausgeführt werden soll, wenn die Antwort der Datenbank verarbeitet ist.
        • die Parameter in der eckigen Klammer sind optional. Will man einen der Parameter benutzen, muessen die vorangehenden Parameter ebenfalls gesetzt werden, mindestens mit dem 'default' Wert!
          • myStyle [default: "normal"]:Sring!
            • "exact" : gibt nur wirklich eindeutige Suchergebnisse zurück, z.B. _root.askEasyDB(id, 45,"exact"); // max. 1 Ergebnis
            • "numerical_less" : entspricht der < Anfrage, z.B. _root.askEasyDB(id, 23,"numerical_less"); // mehrer Ergebnisse möglich
            • "numerical_greater" : entspricht der > Anfrage, z.B. _root.askEasyDB(id, 67,"numerical_less"); // mehrer Ergebnisse möglich
            • "numerical_less_equal" : entspricht der <= Anfrage, z.B. _root.askEasyDB(id, 48,"numerical_less_equal"); // mehrer Ergebnisse möglich
            • "numerical_greater_equal" : entspricht der >= Anfrage, z.B. _root.askEasyDB(id, 13,"numerical_greater_equal"); // mehrer Ergebnisse möglich
          • myTargetArray [default: default]
            • hier könnt ihr ein Array angeben, in welches das Ergebnis eurer Suchanfrage abgelegt werden soll. Das Array muss VOR der Anfrage schon existieren!
            • soll das Ergebnis in das _global.imageControl_array abgelegt werden muss der Eintrag default sein.
          • myTargetFunction [default: default]
            • hier könnt ihr eine FUNKTION angeben, die ausgeführt werden soll anstelle der _root.actionOnAnswer_xmlLoad(); Funktion. Die myTargetFunction muss schon vor der Anfrage existieren!
            • soll die übliche root.actionOnAnswer_xmlLoad();_ ausgeführt werden muss der Eintrag default sein.
          • myMode [default: "normal"]:Sring!
            • "normal" : ergibt kein Unterschied zur bisherigen Suchanfrage
            • "complex" : erlaubt das zusammenstellen komplexer Anfragen mit SQL Statements MIT VORSICHT ZU GEBRAUCHEN !!
              • Der Mode 'complex' gibt mit dem Parameter 'where' Informationen aus der Datenbank. Damit können nur die gesamten Informationen eines Feldes ausgegeben, Groß- und Kleinschreibung ist verbindlich, Worte werde mit ' ' eigegeben, Zahlenwerte werden direkt eingegeben. (Beim Suchmodus 'complex' wird die Option myStyle überschrieben, muß aber als Parameter mitgesendet werden.)
              • Z.B. die Suchanfrage für Bilder mit der Größe 100-200kb:
                • WHERE filesize > 100000 AND filesize < 200000.
              • Im URL muss das mit Apostroph getrennt sein:
                • mode=complex&where="filesize > 100000 AND filesize < 200000".
                • z.B.http://leonbattista.ethz.ch/~spindler/replay-test.php?mode=complex&where="Bilder.id<1724 AND Bilder.id>1720"
              • Oder um aus dem Feld "Werkzusammenhang" dieses Suchergebnis zu erhalten: "strasse, shinjuku, tokio ,japan, leuchtreklamen" müßt ihr in die Anfrage die gesamten Worte eingeben. Das sieht dann so aus:
                • http://leonbattista/~spindler/replay-easydb.php?mode=complex&where="Werkzusammenhang='strasse, shinjuku, tokio ,japan, leuchtreklamen'"
          • mylimit
            • "limit": Anzahl der zurückgegebenen Bilder wird eingeschränkt
            • z. B: http://leonbattista.ethz.ch/~spindler/replay-test.php?column=masse&search=budapest&limit=3 // liefert 3 Suchergebnisse
            • Die Zahl gibt die Anzahl der Bilder an. Mit n,m kann ein Bereich angegeben werden: limit=0,10 zeigt die Bilder 0-10 an, limit=11,20 die Bilder 11-20.
      • FUNKTION: getInfoEasyDB(myColumn, myTargetAray [, myTargetFunction])
        • Diese Funktion erlaubt Dir, sehr einfach Informationen aus der Datenbank zu erhalten.
        • der Parameter in der eckigen Klammer ist optional.
          • "column": Auswahl der gewünschten Spalte
          • myTargetFunction [default: default]
            • hier könnt ihr eine FUNKTION angeben, die ausgeführt werden soll anstelle der _root.actionOnGetInfoEasyDB Funktion. Die myTargetFunction muss schon vor der Anfrage existieren!
            • soll die übliche root.actionOnGetInfoEasyDB() , bracuht man den Parameter nicht zu setzen. * myTargetArray
            • hier MUESST ihr ein Array angeben, in welches das Ergebnis eurer Suchanfrage abgelegt werden soll. Das Array muss VOR der Anfrage schon existieren!
            • habt ihr z.B. folgende Anfrage verschickt: __root.getInfoEasyDB("masse", _root.meineStadt_array) findet ihr in jedem Feld (Schrank--> Schublade) eine 'Stadt'. z.B. trace(_root.meineStadt_array[2]); // Output: Zuerich
          • Die Anfrage wird nur mit "mode=distinct" gesendet und gibt nur den Wertebereich einer Spalte wieder. Doppelnennungen sind bereits herausgefiltert.
          • z.B. http://leonbattista.ethz.ch/~spindler/replay-test.php?mode=distinct&column=masse
      • FUNKTION: sendEasyDB(my_lv, myColumn)
        • der zu ändernde Wert muss zuerst im Flashobjekt gespeichert werden, zum Beispiel: _global.imageControl_array[3].titel = "mein neuer titel";
        • schreibt bzw. speichert Informationen zu einem Bild in der Datenbank
        • alle beiden Parameter müssen angegeben werden.
          • my_lv
            • wo befinden sich die Informationen zu dem Bild, zum Beispiel: _global.imageControl_array[3]
          • myColumn
            • Welchen Wert wollt ihr ändern? Für Änderungen an dem 'Replay XML' ist nicht die zu ändernde Eigenschaft anzugeben, sondern immer "myReplay" !
            • Falsch: _root.sendEasyDB(_global.imageControl_array[3],"Architekt_nach");
            • Richtig: _root.sendEasyDB(_global.imageControl_array[3],"myReplay");
            • Richtig: _root.sendEasyDB(_global.imageControl_array[45],"Titel");
        • Beispiele:
          • _root.sendEasyDB(meineVariable,"Titel","Dieser Titel ist viel besser");
          • _root.sendEasyDB(_global.imageControl_array[3],"myReplay");
      • FUNKTION: searchMyReplay(my_array, myColumn, myValue):ARRAY
        • mit dieser Funktion könnt ihr das 'replay' xml durchsuchen. NICHT das xml in der Datenbank, die Informationen zu einem Bild müssen zuerst angefragt worden sein.
        • diese Funktion gibt euch ein Array mit den Treffern zurück.
        • alle beiden Parameter müssen angegeben werden.
          • my_array
            • das Array indem die Informationen abgelegt sind (das Ergebnis der askEasyDB Anfrage), zum Beispiel: _global.imageControl_array
          • myColumn
            • In welcher Sparte wollt ihr suchen?
          • myValue
            • Nach welchem Wert soll gesucht werden!
        • Beispiel:
          • meinErgebnis_array = _root.searchMyReplay(_global.imageControl_array,"Architekt_nach","Gropius");
    • weitere Informationen:
      • weitergehende Informationen, z.B. zum _global.imageControl_array oder _root.actionOnAnswer_xmlLoad(); findet ihr hier: AlteVersionen:


  • replayUtilities_v0.05.as:
    • Anwendungen:
      • die Datei muss ebenfalls mit #include "replayUtilities_v0.03.as" eingebunden werden.
      • in Verbindung mit connectEasyDB_v0.0x.as erlaubt es die automatische Übersetzung des 'Mapping easyDB'
      • FUNKTION: randRange(min,max)
        • diese Funktion gibt eine zufällige ganzzahlige Zahl in einem bestimmten Bereich zurück.
        • siehe auch.
      • FUNKTION: _root.placeImage(target_mc, myObj, mySpaceHeight:Number, mySpaceWidth:Number, clipName:String, imgUrl:String, posX:Number, posY:Number, center:Boolean, myFunction)
        • Parameter
          • target_mc: In welchen Clip soll das Bild geladen werden? Es muss ein MovieClip angegeben werden! z.B. _root.clip_mc
          • myObj: Wo findet man die Informationen zu dem Bild? z.B. _global.imageControl_array[0]
          • mySpaceHeight: In welche Höhe soll das Bild eingepasst werden? z.B. 80
          • mySpaceWidth: In welche Breite soll das Bild eingepasst werden? z.B. 80
          • clipName: Wie soll der Clip heissen, in welchen das Bild geladen werden soll? z.B. "hans"
            • --> Information: Das Bild wird nicht in den Clip "hans" geladen. Im Clip "hans" wird ein leerer Clip 'img_mc' gemacht, in dem dann das Bild geladen wird.
          • imgUrl: welche Bildgrösse soll geladen werden? z.B. "urlThumb"
          • posX: x position im target_mc
          • posY: y position im target_mc
          • center: Soll das Bild zentriert werden? z.B. true (HINWEIS: Es muss ein BOOLEAN übergeben werden, kein String!)
          • myFunction: hier kann man optional eine Funktion übergeben, welche zum Beispiel die Bilder sortiern soll! z.B. "_root.setOrder"
      • FUNKTION: realSizeOfImage(myObj, imgUrl):LoadVars
        • diese Funktion gibt euch ein LoadVars Objekt zurück, mit der Bildgrösse des angefragten Bildes in Pixels
        • über die Eigenschaften toLoadHeight und toLoadWidth kann man die Werte abfragen.
        • Parameter
          • myObj: z.Bsp. _global.imageControl_array[3]
          • imgUrl: z.Bsp. "urlThumb"
        • Beispiel:
          • my_lv = _realSizeOfImage(_global.imageControl_array[3], "urlBig");
          • trace(_my_lv.toLoadHeight); // Output: 234
          • trace(_my_lv.toLoadWidth); // Output: 600
      • FUNKTION: scaleFactor(mySpaceWidth, mySpaceHeight, toLoadWidth, toLoadHeight):NUMBER
        • diese Funktion gibt euch den passenden Skalierfaktor zurück
        • Parameter
          • mySpaceWidth und mySpaceHeight: die Grösse in welche das Bild eingepasst werden soll..
          • toLoadWidth und toLoadHeight: wie gross idt das zu ladende Bild in Pixel.
        • Beispiel:
          • myScale = _root.scaleFactor(456, 234, 678, 267);
          • myScale = _root.scaleFactor(myWidth, myHeight, _realSizeOfImage(myObj, imgUrl).toLoadWidth, _realSizeOfImage(myObj, imgUrl).toLoadHeight);



Replay Downloads

  • function randRange(min,max)
        // The following example returns a random number between two specified integers.
        // Quelle: macromedia flash help: math.random();
        function randRange(min:Number, max:Number):Number {
             var randomNum:Number = Math.round(Math.random()*(max-min))+min;
             return randomNum;
        }
        



Description Feld: XML-Struktur

Ausfüllen: siehe Handbuch
<replay>
   <Bauaufgabe>
      <Wert></Wert>
      <Wert></Wert>
   </Bauaufgabe>
   <Architekt_vorn>
      <Wert></Wert>
      <Wert></Wert>
      <Wert></Wert>
   </Architekt_vorn>
   <Architekt_nach>
      <Wert></Wert>
      <Wert></Wert>
      <Wert></Wert>
   </Architekt_nach>
   <Material>
      <Wert></Wert>
      <Wert></Wert>
   </Material>
   <Bauteil>
      <Wert></Wert>
      <Wert></Wert>
   </Bauteil>
   <Epoche></Epoche>
   <Sty_Wert>5</Sty_Wert>
   <Sty_Sum></Sty_Sum>
   <Sty_Vote></Sty_Vote>
   <Qu_Wert>5</Qu_Wert>
   <Qu_Sum></Qu_Sum>
   <Qu_Vote></Qu_Vote>
   <Form_Wert>5</Form_Wert>
   <Form_Sum></Form_Sum>
   <Form_Vote></Form_Vote>
   <Farbe>
      <Wert></Wert>
      <Wert></Wert>
      <Wert></Wert>
   </Farbe>
   <Person>
      <Wert></Wert>
      <Wert></Wert>
      <Wert></Wert>
   </Person>
   <Taetigkeit></Taetigkeit>
   <Bildgattung></Bildgattung>
   <User>
      <Wert></Wert>
      <Wert></Wert>      
      <Wert></Wert>
      <Wert></Wert>      
      <Wert></Wert>
   </User>
   <Usergruppe>Architekt</Usergruppe>
</replay>

Backup Thus 2005-02-17

Attachment sort Action Size Date Who Comment
dump.ThuFeb17191733CET2005.bz2 manage 3831.3 K 17 Feb 2005 - 18:25 TorstenSpindler mysql_dump der Replay easydb

Revision r1.29 - 28 Feb 2005 - 12:52 - KaiRuedenauer
Parents: WebHome
Copyright © 1999-2003 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.

This website has been archived and is no longer maintained.