Durchsichtiger Kühlschrank

Die Idee ist ein druchsichtiger Kühlschrank – nicht einfach ein Kühlschrank mit einer Glastür, sondern ein Kühlschrank im Retro Design, der einfach aus einem durchsichtigen Plastik gemacht ist. Es gibt ja auch gläserne Klaviere, warum nicht auch Kühlschränke? Die Vorteile liegen auf der Hand. Man muss nicht den Kühlschrank aufmachen, um zu schauen, was drin ist und was man einkaufen muss. Daher spart man auch Energie, die normalerweise entweicht beim Öffnen der Kühlschranktür. Man wird automatisch gezwungen, seinen Kühlschrank sauber zu halten.

Ausserdem ist der Mensch an sich ein kleiner Voyeur, man freut sich, wenn man Dingen beim Funktionieren zuschauen darf. Bester Beweis dafür die ersten Waschmaschinen, die ein Ladenhüter waren, bis man ein Fenster zum Beobachten der Wäsche eingebaut hat.

Und so ein Kühlschrank würde endlich die alles entscheidene Frage klären, ob das Licht ausgeht, wenn man die Tür schliesst. Ach ja, weiterer Vorteil – keine kleinen Kinder, die sich genau deswegen drin verstecken.

Als Zusatz könnte man die Kühlschranktür mit einem Schalter zu versehen, der den Kühlschrank matt macht, wenn man es möchte. Wie bei den Glasplatten, die mal matt und mal durchsichtig sind.

EDIT: und wieder gibt es einen klugen Menschen :-* , der mir sagt, warum die Idee nicht praktikabel ist – das Licht macht die Lebensmittel kaputt, darum die Dunkelheit in dem Ding. Na gut…

Geschrieben in crazyideas | Kommentare deaktiviert für Durchsichtiger Kühlschrank

FlashVars auslesen

An eine Flashanimation kann man per GET Variablen übergeben. Was man dabei beachten muss: in Flash CS3 wird aus Flash heraus beim Veröffentlichen eine HTML-Datei generiert, in der der Flash-Film mit einem JavaScript eingebunden wird. Früher war das einfach nur ein Object-Tag mit einem Embed-Tag.
Wenn man also einfach wir früher den Object-Tag nutzen möchte, schreibt man die Variablen, die man an Flash übergeben will einfach als GET-Parameter ans Ende des Flash-Aufrufs.

In Flash CS3 muss man die Variable flashVars in den Aufruf der Funktion eingebaut werden.
AC_FL_RunContent(
‘codebase’, ‘http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0’,
‘flashVars’, ‘var=foo&var2=bar’,

Um auf diese Variablen in Flash CS3 zuzugreifen, muss man ein Object der loaderInfo erzeugen.
var parameters:Object = this.loaderInfo.parameters;
Security.loadPolicyFile(parameters.serverURL +”/crossdomain.xml”);

In diesem Fall wurde die Variable ?serverURL=server an den Aufruf der Datei drangehängt.

In Flash bis Version 8 standen die per GET übergebenen Variablen einfach als _root.var zur Verfügung.

Geschrieben in flash/flex | Kommentare deaktiviert für FlashVars auslesen

Leckerer Salat

Zutaten:

  • grüner Salat (2 Stück Chicoree oder eine fertige Salatmischung)
  • 2 Tomaten
  • 1 kleine reife Avocado
  • 1 Packung Fetakäse (echten und kein Kuhfake)
  • 1 Päckchen Croutons

Alles klein schneiden und vermischen, Avocado und Fetakäse ein wenig matschen. Fürs Dressing 1 TL scharfen Senf, 1 TL Honig verrühren, mit Traubenkernöl (dickflüssig) und Rapsöl (nicht so dickflüssig) verrühren. Balsamico dazugeben, salzen und pfeffern. Man kann bestimmt auch andere Öle nehmen, Olivenöl passt vielleicht nicht so gut. Und anstatt Balsamico kann man bestimmt auch Weißweinessig nehmen. Sehr lecker!

Geschrieben in cooking | Kommentare deaktiviert für Leckerer Salat

Fatburner Step

In der Beschreibung beginnt jeder Block auf rechts.

Block A
8 ZZ – 4 Steptouch rauf aufs Step und dann wieder runter
8 ZZ – Jazz (re auf Step, links kreuzen), Mambo re
8 ZZ – 4 Steptouch rauf aufs Step und dann wieder runter
8 ZZ – Jazz (re auf Step, links krezen), Kick vor re
Wenn zu einfach, kann man eine Drehung einbauen, in dem man mit dem Jazz auf die andere Seite des Step wechselt.

Block B
8 ZZ – 2 V-Step
8 ZZ – 2 Side Leg Lift, Arme seit öffnen
8 ZZ – 2 Back Leg Lift, Arme lang nach oben
8 ZZ – Repeater Kick mit Sprung (Sprung, Tap hinter das Step, Tap vor dem Step, ab)

Block C
8 ZZ – 2 Stomp re (li Tap auf Step), 1 Stomp li
8 ZZ – 2 Kick, Arme boxen
8 ZZ – Basic Tap (entwickelt aus 2 Basic)
8 ZZ – Repeater Variation nach vorn (Curl, vorderes Knee hoch, Curl)

Geschrieben in choreos | Kommentare deaktiviert für Fatburner Step

Fatburner Step

In der Beschreibung beginnt jeder Block auf rechts.

Block A (32 ZZ)
8 ZZ – Basic Straddle re
8 ZZ – halber L-Step re
8 ZZ – Repeater Kick Arme Box li
8 ZZ – Repeater Kick Arme Box re

Block B (32 ZZ)
8 ZZ – Mambo Cha-Cha re, 4 March um das Step rum li
8 ZZ – 2 Knee Lift Straddle zurück li
8 ZZ – V-Step li, Mambo li
8 ZZ – V-Step li, Mambo li

Block C (32 ZZ)
16 ZZ – 4 Knee Lift Straddle um das Step rum re, Arme Bizeps hoch
8 ZZ – 2 Back Leg Lift, Arme seit
8 ZZ – Mambo Cha-Cha re, Mambo li

Geschrieben in choreos | Kommentare deaktiviert für Fatburner Step

Programmatic Skin für Buttons mit Variablen Farben

Auf einen Button in Flex soll ein Skin gelegt werden, damit die Buttons einfacher aussehen.

Dazu erstellt man eine Datei ButtonSkin im gleichen Ordner. Dort definiert man die Klasse ButtonSkin als Erweiterung der Klasse Programmatic Skin. Darin muss man die Funktion updateDisplayList neu schreiben. In diesem Beispiel wird der Button mit einem Rand versehen. In den ersten zwei Zeilen der Funktion wird auf die in der Hauptanwendung gesetzen Farben zugegriffen.

package
{
import mx.skins.ProgrammaticSkin;
public class ButtonSkin extends ProgrammaticSkin {
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
var fillColor:uint = this.getStyle(“themeColor”);
var lineColor:uint = this.getStyle(“color”);
graphics.clear();
graphics.beginFill(fillColor,1);
graphics.lineStyle(1,lineColor,1);
graphics.drawRect(0,0,unscaledWidth,unscaledHeight);
}
}
}

Um den “gehäuteten” Button in der Anwendung zu benutzen, fügt man folgende Zeilen in den Code des Style-Abschnitts im MXML-File ein.

Button {
cornerRadius: 0;
highlightAlphas: 0, 0;
fillAlphas: 1, 1, 1, 1;
downSkin:ClassReference(‘ButtonSkin’);
upSkin:ClassReference(‘ButtonSkin’);
overSkin:ClassReference(‘ButtonSkin’);
disabledSkin:ClassReference(‘ButtonSkin’);
}

Geschrieben in flash/flex | Kommentare deaktiviert für Programmatic Skin für Buttons mit Variablen Farben

TabNavigator – Styles dynamisch zuweisen

In einem Tab-Navigator sollen die Styles, vor allem die Farben erst später gesetzt werden. Zunächst muss man die Stile für den TabNavigator fest definieren:

TabNavigator {
  backgroundColor: #8b8b8b;
  borderStyle: none;
  color: #ffffff;
  dropShadowEnabled: false;
  tabStyleName: "myTabs";
  firstTabStyleName: "myTabs";
  lastTabStyleName: "myTabs";
  selectedTabTextStyleName: "mySelectedTabs";
}

.myTabs {
  cornerRadius: 0;
  highlightAlphas: 0, 0;
  fillAlphas: 1, 1;
  fillColors: #ffffff, #ffffff;
  borderColor: #8b8b8b;
  color: #8b8b8b;
}

.mySelectedTabs {
  color: #ffffff;
  textRollOverColor: #ff9900;
}

Das macht man in einem Style-Abschnitt in der MXML-Datei. Dann kann man in einer Funktion auf die bestehenden Stile zugreifen und deren Attribute ändern.

// den TabNavigator CSS Style holen
var tabNavigatorStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration("TabNavigator");
// Hintergrundfarbe neu setzen (z.B. auf grün)
tabNavigatorStyle.setStyle("backgroundColor", 0x00FF00);
// den .myTabs CSS Style holen
var tabStyle:Object = StyleManager.getStyleDeclaration(".myTabs");
// z.B.cornerRadius setzen
tabStyle.setStyle("cornerRadius", 10);

Vielen Dank an Bort, den Flexperten auf dem Flex Forum.

Geschrieben in flash/flex | Kommentare deaktiviert für TabNavigator – Styles dynamisch zuweisen

Application auf Flash Media Server 2

Es gibt einige Beispiele auf der Adobe Seite, leider war da kein einziges, das Flash CS3 (mit AS3) und Flash Media Server 2 beschrieb. Hier sind einige Grundlagen:

Um eine Application zu erstellen, muss man im Ordner applications im Verzeichnis des Servers einen neuen Ordner anlegen, denn man dann z.B. “app” benennt. In diesem Ordner erstellt man eine Datei namens “main.asc”, die dann die Logik der Anwendung beschreibt.

Bei FMS2 wird die Datei in AS2 geschrieben, d.h. keine Typbeschreibung in der Variablen-Deklaration, also kein var i:Number; Ausserhalb der Funktionen dürfen keine Variablen stehen. Wenn man Variablen initialisieren will, muss man das in der onAppStart tun.

Die Funktion onAppStart wird automatisch beim Laden der Anwendung aufgerufen, die geschieht, wenn ein Client sich mit der Anwendung verbinden will oder wenn man die Anwendung manuell startet.

application.onAppStart = function() { ... }

Die Funktion onConnect wird aufgerufen, wenn ein Client sich verbinden möchte. Die Verbindung kann man annehmen oder ablehnen.

application.onConnect = function(clientObj,clientName) {
  application.acceptConnection(clientObj);
}

Um eine Funktion beim Client aufzurufen, muss diese in der NetConnection definiert sein. Auf dem Server ruft man über call die Funktion auf.

Flash AS3 (Client)
var nc:NetConnection = new NetConnection(); // Rest siehe voriger Post
nc.eineFunktion = function(wert1,wert2) { ... }

main.asc in AS2 auf Server
clientObj.call("eineFunktion",null,wert1,wert2);
application.broadcastMsg("eineFunktion", wert1,wert2)

An zweiter Stelle steht eine CallBack-Funktion, die aufgerufen wird, wenn eine Antwort erwartet wird. In der zweiten Zeile wird die Funktion auf allen Clients ausgeführt, zu beachten ist hierbei, dass da die CallBack-Funktion fehlt.

Anderherum funktioniert es wie folgt: auf dem Server definiert man über prototype die Funktion in der Client-Klasse. In Flash ruft man sie über call auf.

Flash AS3 (Client)
nc.call(neueFunktion,null,wert3,wert4);

main.asc in AS2 auf Server
Client.prototype.neueFunktion = function(wert3,wert4) { ... }

Noch ein Tipp: sobald man die Datei als asc abgespeichert hat, kann man keine Syntax-Überprüfung machen (was fürn Schwachsinn). Den Quellcode einfach kopieren, neues Fenster auf, ohne Speichern Syntax checken lassen.

Geschrieben in flash/flex | Kommentare deaktiviert für Application auf Flash Media Server 2

Flash CS3 und Flash Media Server 2

Bin am verzweifeln gewesen – habe die Dokumente zum Flash Media Server 2 durchgelesen, dummerweise sind alle Beispiele für Action Script 2. In AS3 hat sich einiges geändert. Das waren schon die ersten Probleme: NetConnection.onStatus existiert so nicht mehr, bis man erstmal findet, wie man sich sonst korrekt mit dem Server verbinden kann, vergehen Studen. Und ein weiterer wichtiger Punkt: AS3 nutzt ein neues Format, um Action Script Daten zu übertragen, das aber leider inkompatibel ist mit dem alten Action Message Format (AMF). In allen Beispielen kein Wort davon, dass man dem AS3 mitteilen muss, dass anstatt AMF3 AMF0 verwendet werden soll.

NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;

Und so baut man nun eine Connection auf:

private function init():void{
  nc = new NetConnection();
  nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
  nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, netSecurityError);
  nc.connect("rtmp:/myApplication");
}

private function netStatus(event:NetStatusEvent):void {
  var info:Object = event.info;
  trace(info.code);
}

private function netSecurityError(event:SecurityErrorEvent):void {
  trace("netSecurityError: " + event);
}

Diese Infos habe ich von der Seite Programming Flash Communication Server.

Geschrieben in flash/flex | Kommentare deaktiviert für Flash CS3 und Flash Media Server 2