• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-11-2008, 20:13   #1 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
[STUFF] StageManager AS3

Hallo,

ich habe mir erlaubt die StageManager Klasse von readme.txt in AS3 um zu bauen und will sie daher auch nicht für mich alleine behalten.
Eine detailierte Beschreibung hab ich mir gespart, ihr könnt ja im Tread von readme.txt details nachlesen.
Der einzige Unterschied besteht darin das die Klasse nur in Verbindung mit TweenLite funktioniert.

anschauen | laden

Verwendung
ActionScript:
  1. import sh.display.StageManager;
  2. import sh.display.StageManagerAlign;
  3. import sh.display.StageManagerScaleMode;
  4. import gs.easing.*;
ActionScript:
  1. this.StMa = new StageManager(stage);
  2. this.StMa.moveTime = 200;   // die Zeit (ms) die nach dem Resize gewartet wird bevor die Tweens ausgelöst werden
  3. this.StMa.addBackImg("cachel5.JPG", StageManagerScaleMode.CACHEL);   // hier funktioniert bis jetzt nur Cachel.
  4.  
  5. this.StMa.addItem(mc, { attribute:"size", ratio:[0.5, 0.5], offset:[ -20, -20] },
  6.                         { attribute:"position", pos:StageManagerAlign.TOP_LEFT },
  7.                         { attribute:"animation", duration:1, ease:Strong.easeOut } );

Viel Spaß damit
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website

Geändert von Linowitch (22-11-2008 um 20:22 Uhr)
Linowitch ist offline   Mit Zitat antworten
Alt 23-08-2009, 13:08   #2 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
UPDATE link oben benutzen

Ich hab jetzt nochmal ein paar sachen eingebaut.
ActionScript:
  1. public function addBackImg(path:String, scaleMode:String):void
hier können jetzt auch
ActionScript:
  1. SageManagerScaleMode.SCALE
und
ActionScript:
  1. SageManagerScaleMode.STRETCH
verwendet werden.

attribute StageManagerAttribute.SIZE und StageManagerAttribute.POSITION kennen jetzt noch zusätzlich
lowSize:Array und highSize:Array

bsp.
Wenn man ein DisplayObject immer in der Mitte mit halber stage grösse haben möchte, aber height nicht skallieren soll wenn stageHeight < 500 ist, width wird allerdings weiter skalliert.
ActionScript:
  1. import sh.display.StageManager;
  2. import sh.display.StageManagerAttribute;
  3. import sh.display.StageManagerAlign;
  4.  
  5. var stMa:StageManager = new StageManager(stage);
  6. stMa.addItem(mc, { attribute:StageManagerAttribute.POSITION, pos:StageManagerAlign.CENTER_CENTER, lowSize:[null, 500] },
  7.                            { attribute:StageManagerAttribute.SIZE, ratio:[.5,.5], lowSize:[null, 500] } );
das ganze funktioniert dann natürlich auch mit width, oder wenn POSITION nicht mehr skallieren soll aber SIZE schon.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 25-09-2009, 15:49   #3 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 1.929
funktioniert nicht so ganz wie ich mir das vorgestellt habe:

Ziel ist es, zwei Sprites so zu deformeiren, dass sie den Bildschirm füllen.
Der Abstand zwischen ihnen und dem Rand soll 10 pixel betragen.
Derdiedas linke Sprite soll aber bitteschön immer 300pixel breit sein.

erste(r/s) Sprite:
PHP-Code:
staMa.addItem(sprite1, { attribute:"size",ratio:[1,1], offset:[null, -20], highSize:[300,null]},{attribute:"position",pos:"tl"register:"tl"offset:[10,10]} ); 
Theorie von mir: ich mach das Ding erstmal so groß wie den Bildschirm, reduziere dann die Höhe um 20 (von wegen Rand und so), setzte die maximale Breite auf 300. Mit dem 10/10er offset, habe ich meinen Rand.

Praxis: oben sieht alles toll aus. der abstand links und oben passt und das Teil ist auch 300 breit, allerdings ist es zu lang und geht bis zur unteren Kante, wo ja aber eigentlich nochmal Rand sein sollte.

zweite(r/s) Sprite:
PHP-Code:
staMa.addItem(sprite2, { attribute:"size"ratio:[1,1], offset:[-330, -20]},{attribute:"position",pos:"tl"register:"tl"offset:[320,10]} ); 
Theorie von mir: Wieder fülle ich erstmal alles komplett. Diesmal muss ich 3 mal Rand und die 300 pixel abziehen, damit ich auf die restliche zu füllende Fläche komme. (für die Höhe ändert sich ja nichts, also hier wieder -20)
Ich verschiede mittels offset die Geschichte an die gewünschte Stelle (es sind 320, da ich in der Mitte ja nur 1mal Rand möchte).

Praxis: Ach du sch...tagemanager, wo hast du denn meine Fläche hingepappt?
Das zu beschreiben fällt schwer, denn meine Fläche ist irgendwie völlig falsch.

Ich hänge mal ein Bild an um zu zeigen was passiert.
Ich hab hier bestimmt irgendwas falsch verstanden und bin dankbar für Hilfe.
Angehängte Grafiken
Dateityp: jpg stageManagerProblematik.jpg (21,0 KB, 52x aufgerufen)
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist gerade online   Mit Zitat antworten
Alt 25-09-2009, 20:22   #4 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
Wenn du im attribute "size" einen offset von -20 angibst, wird er oben und unten zu gleichen teilen gekürzt, wenn du den mc dann mit attribute "position" noch um offset 10 runter schiebst, ist unten kein Rand mehr.

highSize:[300,null] sagt nur das ab einer Bühnenbreite von 300 pixel der mc nicht mehr in der breite skalliert wird.

wenn immer noch probleme da sind mach mir ein Bild mit PS wie es sein soll, dann bau ich Dir ein Beispiel, am besten ist es aber Du machst ein attribut ohne offset usw. änderst dann immer nur eine Eigenschaft und schaust wie es sich verhält.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 26-09-2009, 15:52   #5 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 1.929
Zitat:
Zitat von Linowitch Beitrag anzeigen
dann bau ich Dir ein Beispiel,
nö nö, die Suppe löffle ich selbst aus.
Ich habe mir die Sache einfacher vorgestellt.

Naja, wozu habe ich eigentlich flex?
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist gerade online   Mit Zitat antworten
Alt 30-10-2009, 13:56   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 56
gleichmäßg skalieren

moin moin

versuche es gerade hinzubekommen das mein mc immer nur gleichmäßig skaliert, sich also das verhältniss von höhe zu breite nicht ändert.
versuche zu erreichen das ein foto sich an die stage größe anpasst ohne zu verzerren.

hat da jemand einen tip?

besten dank
tentacles
tentacles ist offline   Mit Zitat antworten
Alt 30-10-2009, 21:01   #7 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
Das geht im moment nur mit einem Hintergrundbild, das du mit
ActionScript:
  1. stMa.addBackImg(...);
registrierst, aber vielleicht komm ich am WE dazu das noch zu integrieren.
Die Berechnung ist aber nicht wirklich kompliziert.

ActionScript:
  1. var ratioStage:Number = stage.stageWidth/stage.stageHeight;
  2. var ratioMC:Number = mc.width/mc.height;
  3.  
  4. if(ratioStage<=ratioMC){
  5.     mc.width = stage.stageHeight * ratioMC;
  6.     mc.height = stage.stageHeight;
  7.     mc.x = -((stag.stageHeight * ratioMC - stage.stageWidth) / 2);
  8.     mc.y = 0;
  9. } else {
  10.     mc.width = stage.stageWidth;
  11.     mc.height = stage.stageWidth / ratioMC;
  12.     mc.x = 0;
  13.     mc.y = -((stage.stageWidth / ratioMC - stage.stageHeight) / 2);
  14. }
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 01-11-2009, 17:13   #8 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
UPDATE link oben benutzen

So, auf mehrfache Anfrage hab ich die Funktion, mc mit gleichbleibendem Seitenverhältnis der Bühne anzupassen, noch eingefügt.

Es ist jetzt mit einem extra parameter scale möglich, das Seitenverhältins beizubehalten.
z.B.
Bei allen Beispielen bleibt das Seitenverhältnis gleich, wegen scale=true
mc an 100% der Breite der Stage anpassen.
ActionScript:
  1. var stMa = new StageManager(stage);
  2.  
  3. this.stMa.addItem(mc, { attribute:StageManagerAttributes.POSITION, pos:StageManagerAlign.CENTER_CENTER },
  4.                                     { attribute:StageManagerAttributes.SIZE, scale:true, ratio:[1, null] } );

mc an 80% der höhe der Stage anpassen
ActionScript:
  1. var stMa = new StageManager(stage);
  2.  
  3. this.stMa.addItem(mc, { attribute:StageManagerAttributes.POSITION, pos:StageManagerAlign.CENTER_CENTER },
  4.                                     { attribute:StageManagerAttributes.SIZE, scale:true, ratio:[null, .8] } );

bei den Beispielen bisher richtet sich der mc aber immer nur an einer Seite der Stage aus, das führt bei einer ungünstigen Auflösung zu häslichen Rändern.

mc an 100% breite oder höhe der Stage, je nach Seitenverhältnis, anpassen
ActionScript:
  1. var stMa = new StageManager(stage);
  2.  
  3. this.stMa.addItem(mc, { attribute:StageManagerAttributes.POSITION, pos:StageManagerAlign.CENTER_CENTER },
  4.                                     { attribute:StageManagerAttributes.SIZE, scale:true, ratio:[1, 1] } );

das ganze funktioniert von 0 - 100% => 0 - 1

Bei Bugs, Verbesserungsvorschläge, konstruktiver Kritik oder ähnliches, bitte einfach eine mail an mich.

Viel Spaß damit
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website

Geändert von Linowitch (01-11-2009 um 17:15 Uhr)
Linowitch ist offline   Mit Zitat antworten
Alt 04-11-2009, 12:00   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 56
besten dank,

werde ich gleich mal einbauen
tentacles ist offline   Mit Zitat antworten
Alt 04-11-2009, 13:25   #10 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 56
Bug?

Hallo habe gerade mal ein wenig rumgespielt.

es ich bekomme das ganze nur zum laufen wenn ich ratio:[1,1] nutze. sobald ich null angebe (sieh unten) wird der mc gar nicht mehr bzw. vielleicht außerhalb der stage gezeigt.

Mache ich etwas falsch?

PHP-Code:
bigPic.myManager.addItem(bigPic.picContainer,{ attribute:"size"scale:trueratio:[null1] },{ attribute:"position"pos:StageManagerAlign.CENTER_CENTERoffset:[-35,-79]},{ attribute:"animation"duration:1ease:Strong.easeOut }); 
tentacles ist offline   Mit Zitat antworten
Alt 04-11-2009, 14:51   #11 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
hast recht, das ist ein Bug.
steht schon auf meiner Liste.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 17-11-2009, 10:45   #12 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 56
moin Linowitch,

bist du mit dem bug schon weitergekommen? oder hast du einen anhaltspunkt woran das liegen mag, dann könnte ich selber mal versuchen das zu beheben.

beste grüße,

tentacles
tentacles ist offline   Mit Zitat antworten
Alt 17-11-2009, 20:53   #13 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
Hi,
ich hatte bis jetzt leider noch keine Zeit den Bug zu beheben.
Hab gerade nochmal rein geschaut, aber ich denke ich werd die Funktion Komplett überarbeiten müssen.
Der Fehler liegt in der Funktion calculateSize.
Da stimmt einiges nicht, weiß nicht was ich da gemacht hab.

Kannst gerne mal nachschauen.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 18-11-2009, 12:15   #14 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 56
vorherige version

sag mal hast du noch die alte version ohne scale irgendwo zum download? habe leider mein zip überschrieben.

beste grüße,

tentacles
tentacles ist offline   Mit Zitat antworten
Alt 23-09-2010, 07:25   #15 (permalink)
Flasher
 
Benutzerbild von mauri2006
 
Registriert seit: Oct 2007
Ort: Niedersachsen
Beiträge: 502
Sorry, ich weiß der letzte Beitrag ist schon etwas länger her, aber das ist sehr wichtig. Der haut mir immer 3 Fehler raus:




Weiß jemand, wie man das fixen könnte?
__________________
Nützliches: Javascript-Detection | Flash-Detection | Java-Detection
Allgemein: Meine Webseite | Meine Fotogallerie (Auf's Eis gelegt)


RIP agedoubleju
mauri2006 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele