Newsletter Registrierung

Name
E-Mail*

Die mit einem * gekennzeichneten Felder müssen ausgefüllt werden!



XFL Workflow mit Indesign CS4 und Flash CS4 Drucken E-Mail
Geschrieben von: Sven Brencher   
Dienstag, 30. Juni 2009 um 09:02

XFL ist ein neues Format für Flash Projektdaten. Gegenüber dem FLA Projektformat von Flash hat es den Vorteil, dass andere Anwendungen Flash Projekte exportieren können. In der Creative Suite 4 gilt das für After Effects und Indesign. 

So kann man zum Beispiel ein in Indesign CS4 gestaltetes Layout als XFL Datei exportieren und dann wieder in Flash CS4 öffnen. Sämtliche Designelemente, Texte, Bilder und Grafiken bleiben dabei erhalten und können dann in Flash entsprechend mit Interaktivität versehen werden. Beim Export werden aus Indesign Seiten bzw. Druckbögen dann in Flash Schlüsselbilder exportiert. Der Flash Entwickler kann nun einzelne Elemente animieren oder Schaltflächen erstellen und mit Funktionen belegen.

Da jegliche Interaktivität fehlt, werden die Indesign Seiten in einer Art Endlosschleife sehr schnell abgespielt. Oft ist es vielleicht nur gewünscht einzelne Elemente zu animieren und das Webmagazin soll warten, bis man mit den Pfeiltasten zur nächsten Seite geht. Genau diese Aufgabe erledigt das folgende Skript, dass man als Slideshow.as speichert und dann in den gleichen Ordner legt, wie die als FLA gespeicherte XFL Datei. Danach kann man diese dann im Eigenschaften Bedienfeld von Flash CS4 als Dokumentklasse zuweisen.  

 

In der Klasse Slideshow.as kann zum Beispiel folgender Code stehen:

package
{
 import flash.display.MovieClip;
 import flash.events.KeyboardEvent;
 import flash.utils.Timer;
 import flash.events.TimerEvent;
 public class Slideshow extends MovieClip
 {


  //Anpassen der Überblendungsdauer
  private var transitionSpeed:Number = 10;
  private var transitionUpdate:uint = 50;
  private var slide:MovieClip;
  public function Slideshow () : void
  {  

   //Stoppen der Hauptzeitleiste und die Bühne in den Fokus bringen
   stop();
   stage.focus = this;

   //Auf Keyboardeingaben achten
   addEventListener ( KeyboardEvent.KEY_UP, keyHandler );
  }
  private function keyHandler ( event:KeyboardEvent ): void {

   //Überprüfen, welche Taste gedrückt wurde und ob die Slideshow nicht am Ende ist
   if ( event.keyCode == 39 && currentFrame != totalFrames ) {
    slide = getChildAt(0) as MovieClip;
    nextFrame();
    addChild(slide);
    slideTransition();
    stage.focus = this;
   } else if ( event.keyCode == 37 && currentFrame != 1 ) {
    slide = getChildAt(0) as MovieClip;
    prevFrame();
    addChild(slide);
    slideTransition();
    stage.focus = this;
   }
  }

  //Erstellt einen Übergang durch Zwischenspeichern des MovieClips
  private function slideTransition ():void {
   removeEventListener ( KeyboardEvent.KEY_UP, keyHandler );
   var timer:Timer = new Timer (transitionSpeed, transitionUpdate);
   timer.start();
   timer.addEventListener ( TimerEvent.TIMER, timerHandler );
   timer.addEventListener ( TimerEvent.TIMER_COMPLETE, timerCompleteHandler );
  }
  private function timerHandler ( event:TimerEvent ):void {
   slide.alpha -= 1 / event.target.repeatCount;
  }
  private function timerCompleteHandler ( event:TimerEvent ):void {
   removeChild (slide);
   addEventListener ( KeyboardEvent.KEY_UP, keyHandler );
  }
 }
}

Kommentare (0)add comment

Kommentar schreiben

busy