• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[Flash 8 Pro] Größe der Bühne beeinflußen

J-C

Lounge-Member
Es geht sich um folgendes..

ich will eine flashscroller mit XML-feed basteln ... das hat soweit geklappt.

nun will ich diesen Scroller möglichst variabel einsetzen - also 1 .swf file und 20'000 XML-Files ... naja übertrieben gesagt.

das hab ich auch hinbekommen.
Nun bin ich allerdings auf ein problem gestoßen: Ich möchte die Größe des Flashfilmes ebenfalls dynamisch halten - so daß zB in der Flashdatei (oder in den Parametern der HTML-Einbettung) die größe definiert werden kann.

Das könnte dann zB so aussehen:
PHP:
<object 
	type="application/x-shockwave-flash" 
	data="slideshow.swf?xmlFile=file1.xml"
	width="600" 
	height="100"
	codebase="#version=6,0,0,0">
	<param name="movie" value="slideshow.swf?xmlFile=file1.xml" />
	
	Alternative Content (Link To Flash Download Size?)
	
</object>

<object 
	type="application/x-shockwave-flash" 
	data="slideshow.swf?xmlFile=file2.xml"
	width="600" 
	height="50"
	codebase="#version=6,0,0,0" >
	<param name="movie" value="slideshow.swf?xmlFile=file2.xml" />
	
	Alternative Content (Link To Flash Download Size?)
	
</object>

wie ihr seht - ich will ein-und-dieslebe Flash-file verwenden und unterschiedliche Inhalte hineinladen - und das auch noch bei unterschiedlicher Höhe.

Mein problem ist, daß ich ja beim erstellen des Flashfilms eine gewisse Dokumentengröße angebe - in diesem Fall habe 600x100Px angegeben.
wenn ich nun via HTML die größe verkleinere, dann scheint es so, als würde die flashbühne "von oben" abgeschnitten - egal, was ich für positionierungsparameter angebe.

selbiges Problem tritt bei einer Änderung der Breite der Bühne auf.


hier mal ein Beispiel: slideshow


so - HILFE!!!!! =)
 
Nehmen wir mal an, Du stopfst folgenden Code in den ersten Frame der Hauptzeitleiste:

Code:
Stage.align = "TL";
Stage.scaleMode = "noScale";

listen = Object ();
Stage.addListener (listen);
listen.onResize = function ()
{
  trace ("Neue Groesse: " + Stage.width + " x " + Stage.height);
}

Dann müßtest Du nur noch dafür sorgen, dass die einzelnen Elemente nicht skaliert werden, sondern sich an die neue Größe des Filmes / Bühne anpassen.

Diese Technik wir i.d.R. bei Komponenten und deren LivePreview Filmen eingesetzt, im Netz finden sich dazu sicherlich ausreichend Tutorials. Der Codefetzen oben macht aber die Hauptarbeit, der Rest ist von Deiner Struktur abhängig.
 
hm, ich hab es anders gelöst. =)

Mein Problem war ja, daß die Stagegröße "richtig" war ... aber die Position meiner Elemente wollte einfach nicht stimmen...

wie beschreib ich es denn? - also wenn ich via HTML die Größe des Flash-Films definiert hab, dann wurde (wie ich JETZT weiß) der Flashfilm - ausgehend von dem originalfilm an allen 4 seiten gleich beschnitten / erweitert ... somit lag der (0,0)-Punkt nicht mehr oben links, sondern entwededer außerhalb des Films oder "irgendwo" mittendrin.

Lösung:
ich habe meinen Flashfilm 1x1 Px groß gemacht - definiere die Größe via HTML - und verschiebe dann meine clips entsprechend um Stage.height/2 bzw Stage.width/2 ... tataaa problem gelöst:

slideshow .. it works =)
 
Zurück
Oben