Einzelnen Beitrag anzeigen
Alt 11-03-2010, 17:18   #171 (permalink)
curious
usefull *****
 
Registriert seit: Nov 2001
Beiträge: 24
Hallo ,

ich habe ein Problem an dem ich mir schon seit Tagen die Zähne ausbeisse :-(

Ich lade eine externe .swf Datei in eine Haupt-Flash-Datei.
Die externe swf.Datei ist ein Animationsfilm, den ich aus Illustratordateien erstellt habe.
– Diese Animation soll als Hintergrundfilm laufen und soll sich der jeweiligen Browserfenstergröße proportional anpassen.
– Die Navigation der Site liegt dann an fester Position im Vordergrund (in der Hauptflashdatei) und soll nicht mit skaliert werden.

Hier zum Anschauen mit Hintergrund und Navigation:
fullscreentest 4

Nun mein grosses Problem: Wenn bei der externen Datei (also der Animationsfilm) die Grafiken über die Bühne gezogen wird, benutzt Flash beim Reinladen nicht die Größe der auf der Bühne sichtbaren Grafik sondern berechnet die über die Bühne hinausgehenden Grafiken mit ein....Dadurch wird beim rein laden falsch skaliert und plaziert .... und eine Skalierung findet beim Verändern der Größe des Browserfensters auch nicht statt. Gibt es da eine Lösung?


Hier zum Anschauen:
Meine Ausgangstest mit einem Hintergrund, dessen grafische Elemente auch über die Bühnengröße gehen, wobei hier alles klappt!

Fullscreentest Extern

Derselbe Test nur mit dem reingeladenen Animationsfilm

Fullscreentest 2 Extern

Hier mein Code den ich für den Hauptflashfilm zum Reinladen und der Skalierung der externen .swf verwendet habe:

PHP-Code:
Stage.scaleMode "noScale";
Stage.align "TL";

var 
bgFile:String "bg_film.swf";
var 
bgWidth:Number;
var 
bgHeight:Number;
var 
ratio:Number;

// ---------- RESIZE LISTENER -----------------------
var stageListener:Object = new Object();
stageListener.onResize = function() : Void{
    
resizeBackground();
}
Stage.addListener(stageListener);


// ---------- MOVIELOADER FOR BACKGROUND SWF --------
var loadListener:Object = new Object();
var 
bgLoader:MovieClipLoader = new MovieClipLoader();
bgLoader.addListener(loadListener);
bgLoader.loadClip(bgFilecontainer);
loadListener.onLoadInit = function(container) : Void{
    
bgHeight container._height;
    
bgWidth  container._width;
    
ratio bgWidth bgHeight;
    
ratio Math.floor(ratio*100)/100;
    
resizeBackground();
}


// ---------- SCALE FUNCTION FOR BACKGROUND SWF -----
function resizeBackground() : Void{
    if(
Stage.width bgWidth && Stage.height <= bgHeight){
        
container._height Stage.width ratio;
        
container._width Stage.width;
    }
    if(
Stage.height bgHeight && Stage.width <= bgWidth){
        
container._height Stage.height;
        
container._width Stage.height ratio;
    }
    if(
Stage.height bgHeight && Stage.width bgWidth){
        if(
Stage.width Stage.height ratio){
            
container._height Stage.height;
            
container._width Stage.height ratio;
        }
        if(
Stage.width Stage.height ratio){
            
container._height Stage.width ratio;
            
container._width Stage.width

Im Anhang findet ihr die verwendeten Dateien der Tests als .fla:



Den Animationsfilm.fla (ein Auszug) als möglichen Übeltäter hier:
http://ww.zapport.de/animation_short.zip



Jede Hilfe wäre toll,

curious
Angehängte Dateien
Dateityp: zip test.zip (52,1 KB, 44x aufgerufen)
curious ist offline   Mit Zitat antworten