Moin,
ich habe ein Flash-Projekt (Flash 8), welches externe Daten läd und verarbeitet (skaliert).
Wenn ich das ganze mit nem Flashplayer starte ist alles wunderbar.
Integrier ich aber diese SWF-Datei in ein Airprojekt (ich brauch die Dateizugrifffunktion von Adobe Air) wird zwar wunderbar die SWF-Datei geladen und alle Daten sind verfügbar, aber die Daten werden nicht skaliert.
Konkret geht es darum, das in Flash eine Karte mit 2600x2816 Pixeln auf Bildschirmgröße skaliert wird, während in Air nur die linke obere Ecke (halt 0,0) von der Karte zu sehen ist.
Der Code in der Air-Datei sieht so aus:
Kann es sein, dass es Probleme gibt, weil die SWF-Datei in Flash 8 und Air neuer ist?
Ben
ich habe ein Flash-Projekt (Flash 8), welches externe Daten läd und verarbeitet (skaliert).
Wenn ich das ganze mit nem Flashplayer starte ist alles wunderbar.
Integrier ich aber diese SWF-Datei in ein Airprojekt (ich brauch die Dateizugrifffunktion von Adobe Air) wird zwar wunderbar die SWF-Datei geladen und alle Daten sind verfügbar, aber die Daten werden nicht skaliert.
Konkret geht es darum, das in Flash eine Karte mit 2600x2816 Pixeln auf Bildschirmgröße skaliert wird, während in Air nur die linke obere Ecke (halt 0,0) von der Karte zu sehen ist.
Der Code in der Air-Datei sieht so aus:
Code:
//importieren der JPGEncoderklasse
import com.adobe.images.JPGEncoder;
//importieren der nötigen Adobe AIR Pakete
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
//Zählervariable wird initialisiert
var count:int = 0;
//Listener für den Savebutton ruft die Funktion save auf
btn_export.addEventListener(MouseEvent.CLICK, save);
function save(e:MouseEvent) : void{
//legt die Qualität der Bilder fest
var myJpgEncoder = new JPGEncoder(100);
//neues Objekt mit den Abmaßen der späteren Bilder
var bmd:BitmapData = new BitmapData(1024,768);
//zeichnen des Objektes (hier root, also die komplette Bühne)
bmd.draw(root);
//enkodieren des Bildobjektes
var ba = myJpgEncoder.encode(bmd);
//Erstellen einer Datei auf dem Desktop im Ordner Export, Dateien werden durchnummeriert
var file:File = File.desktopDirectory.resolvePath("Export/pic" + count++ +".jpg");
//Ordner wird erstellt
var dir:File = File.desktopDirectory.resolvePath("Export/");
//Falls Ordner noch nicht existiert wird er erstellt
if(!dir.exists){
dir.createDirectory();
}
//neues Streamingobjekt wird erstellt
var fileStream:FileStream = new FileStream();
//Stream wird geöffnet im Schreibmodus
fileStream.open(file, FileMode.WRITE);
//Daten werden geschrieben
fileStream.writeBytes(ba);
//Stream wird geschlossen
fileStream.close();
}
//Adresse des zu ladenden Flashfilms wird festgelegt
var request:URLRequest = new URLRequest("./Kartenfilm.swf");
//neues Ladeobjekt wird erstellt
var loader:Loader = new Loader();
//Flashfilm wird geladen
loader.load(request);
//Objekt wird hinzugefügt
addChild(loader);
//wechseln der Ebenen, damit der Button zum speichern über dem geladenen Flashfilm liegt
swapChildren(loader,btn_export);
Kann es sein, dass es Probleme gibt, weil die SWF-Datei in Flash 8 und Air neuer ist?
Ben