
Die Flash Deployment Console ist für das Deployment in einem Game oder in einer Webseite gedacht, die während der Laufzeit direkten administrativen Eingriff in die Applikation oder Ablauf brauchen. Vergleichbar ist die fCon mit einer Development Console in einem Spiel. (Vielfach mit ^ aufrufbar).
Applikationskontrolle
Die fCon hat in der Console eine Eingabemöglichkeit (Kommandozeile). So ist es möglich Commands zu registrieren die beispielsweise den Benutzer in ein gewisses Level setzen.
Modifikation von Variablen
Die fCon bietet Möglichkeiten für das setzen von Variablen. Sie bietet vorallem mit Vervollständigung eine Navigation durch alle DisplayObjects.
Deployment Logging
Gerade bei Flash Online Applikationen befinden sich die Logs einer Applikation auf der Nutzerseite. Somit kann die Laufzeit der Applikation nicht überwacht werden. Natürlich kann man die Logstufen FATAL und ERROR per Reports an den Server übermitteln, aber bei DEBUG und INFO wäre das mengenmässig ein absolutes Problem. Somit kann man als Entwickler direkt vor Ort in das Geschehen der Applikation Einblick nehmen und den aktuellen Fehler in den Logs suchen.
History
Die fCon bietet eine History mit UP and DOWN keys an. Diese kann mit einer Einstellung Lokal automatisch gespeichert werden. Weiteres kann man mit PAGE_UP oder PAGE_DOWN im Logviewer gescrolled werden. Drückt man zusätzlich SHIFT kann man nach ganz oben oder nach ganz unten.
Scripts und Variablen
Zusätzlich ist ein einfaches Scripting und Variablendeffinitionen möglich.
Sicherheit
Da wir nicht jedem auf einer Webseite den Zugriff auf die Console bieten wollen kann mit dem Lockmanager ein Passwort gesetzt werden. Das ganze funktioniert versteckt und ohne Visuelles Feedback. Somit ist es in einer gewissen Weise “geheim” das diese Applikation eine Console bietet. Das Passwort ist selbstverständlich gehashed und somit auch nicht auslesbar.
Ein paar kleine Beispiele
Einfaches Setup
package {
import com.guavestudios.fcon.ConsoleImpl;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
/**
* fCon Sample
* @author maze | guavestudios.com
*/
public class Main extends Sprite {
public var txt:TextField;
public function Main():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
ConsoleImpl; //reference the console
var config:XML=
<![CDATA[crtl+Char.<]]></setting>
<setting id="Console.trace">false</setting>
<setting id="AutoCompletion.Key"><![CDATA[Char.<]]>
true
true
;
Console.setStage(stage, config); //initialize console
Console.trace("Hello World"); //sample trace
//create a sample textfield
txt = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.text = "Open with 'CRTL + <' and completion with '<'";
addChild(txt);
//register an sample command with textField
Console.execute(["loadCommand",new SampleCommand(txt)]);
}
/**
* sample function
* @return testString
*/
public function getString():String {
return "this is a test String";
}
}
}
Um die Console aufzurufen muss man zuerst das Flash aktivieren und CRTL + < drücken. Dieser Shortcut ist frei definierbar mit der Config.
Das kleine Tutorial zeigt einige Funktionen die die Console im jetztigen Status kann. Die ganzen Kommandos können nach der Reihe ausgeführt werden.
Die Console ist gleich darunter eingebettet und ist noch zugeklappt:
Console
This movie requires Flash Player 9
- Ist die Console offen und das Eingabe Feld aktiviert kann man mit < alle verfügbaren Commandos anzeigen.
- mit pr und < vervollständigt die Console zu print Leertaste. Danach Hello World eingeben und Enter drücken
- align help eingeben um eine hilfe über den Align Command darzustellen
- align bottom eingeben um die Console ganz untem im Flash zu positionieren
- Wir befinden uns derzeit auf der Stage
- print $stage.@ und mit < vervollständigen um die verfügbaren Childs der Stage anzuzeigen (nummeriert)
- weiter schreiben mit 1. und vervollständigen mit <. Wir befinden uns jetzt in der Applikation und sehen die Eigenschaften.
- Die ganze Zeile kann jetzt weitergeschrieben werden auf print $stage.@0.txt.text und mit Enter ausführen
- Da wir das Textfeld nocheinmal brauchen können wir es in eine Variable speichern.
- set textField $stage.@0.txt
- Wir können jetzt eine Variable modifiziern mit modify $textField.name ‘myTextField’
- Die Vervollständigung kann auch auf Element Namen reagieren.
- print $stage.@0.# und mit < vervollständigen. Jetzt wird myTextField als benanntes Item angezeigt. (Listet alle DisplayObjects mit Namen auf)
- Fertigschreiben print $stage.@0.#myTextField.text
- Wir können das Textfeld umpositionieren mit modify $textField.y 50
- Wir haben bei der Initialisierung die Console um “SampleCommand” erweitert. Der Command ist sampleCommand
- sampleCommand $textField.x $textField.y
Wir haben die Flash Deployment Console mit unseren Applikationen weiterentwickelt und jetzt online verfügbar gemacht.
Im Trunk befinden sich derzeit noch mehr Plugins und Commands die ich bei Zeit vorstellen werde.
fCon on Googlecode.com
Sourcecode für Sample
Das ganze ist OpenSoure und unter MIT Lizenz. Wer mitentwickeln möchte kann sich gerne bei uns melden.