Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-03-2007, 14:06   #1 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Question Stage Listener nach geladenen MC neu anpassen

Hallo zusammen,

Wie der Titel schon verrät positioniere ich Movieclips auf der Bühne (immer horizontal und vertikal mittig), welche ihre Position bei Veränderung der Bühnengröße neu berechnen (Siehe Anhang). Das funktioniert auch prima. Allerdings stößt mein Gehirn gerade an seine Grenzen, denn ich habe 6 Buttons horinzontal angeordnet, welche ich wie oben beschrieben positioniere. Unter den Buttons befindet sich ein leerer MC, der als Container dient. Klicke ich auf einen Button, wird eine swf in den Container geladen. Wie kann ich denn nun dem Script sagen, dass in den Container jetzt eine swf liegt, dessen Höhe berechnet wird (Breite ist immer gleich) und sich die Buttons dann dementsprechend vertikal neu positionieren (und zwar so, dass jetzt die Buttons und der Container mit der swf vertikal mittig positioniert werden)? Hab mal meine fla hochgeladen.


Hier der Link zur Rar-Datei:
http://www.philipisik.de/flashforum/flashseite.rar

Für alle, die sich die Rar-Datei nicht saugen möchten, hier noch mal mein Script:

PHP-Code:
//Importiere Tweenklasse-------------------------------------------------------   
#include "lmc_tween.as"
//Bühneneinstellungen----------------------------------------------------------
Stage.scaleMode "noScale";
Stage.align "TL";
//Erstelle Container-----------------------------------------------------------
_root.createEmptyMovieClip("container_mc"this.getNextHighestDepth());
_root.container_mc._x Stage.width/2-450;
_root.container_mc._y Stage.height/2+85;
//Button platzieren------------------------------------------------------------
_root.attachMovie("button1""button1"this.getNextHighestDepth());
_root.button1._x Stage.width/2-388;
_root.button1._y = -70;
_root.attachMovie("button2""button2"this.getNextHighestDepth());
_root.button2._x Stage.width/2-233;
_root.button2._y = -70;
_root.attachMovie("button3""button3"this.getNextHighestDepth());
_root.button3._x Stage.width/2-78;
_root.button3._y = -70;
_root.attachMovie("button4""button4"this.getNextHighestDepth());
_root.button4._x Stage.width/2+78;
_root.button4._y = -70;
_root.attachMovie("button5""button5"this.getNextHighestDepth());
_root.button5._x Stage.width/2+233;
_root.button5._y = -70;
_root.attachMovie("button6""button6"this.getNextHighestDepth());
_root.button6._x Stage.width/2+388;
_root.button6._y = -70;
//Bühneneinstellungen für die Buttons------------------------------------------
buehne = new Object();
buehne.onResize = function() {
    
_root.button1.slideTo(Stage.width/2-388Stage.height/20.5"easeOutBack"0);
    
_root.button2.slideTo(Stage.width/2-233Stage.height/20.5"easeOutBack"0.05);
    
_root.button3.slideTo(Stage.width/2-78Stage.height/20.5"easeOutBack"0.1);
    
_root.button4.slideTo(Stage.width/2+78Stage.height/20.5"easeOutBack"0.15);
    
_root.button5.slideTo(Stage.width/2+233Stage.height/20.5"easeOutBack"0.2);
    
_root.button6.slideTo(Stage.width/2+388Stage.height/20.5"easeOutBack"0.25);
    
_root.container_mc.slideTo(Stage.width/2-450Stage.height/2+850.5"easeOutBack"0);
};
Stage.addListener(buehne);
buehne.onResize();
//MAINNAVIFUNKTION-------------------------------------------------------------
var sites = ["subseite1""subseite2""subseite3""subseite4""subseite5""subseite6"];
for (
i=1i<=sites.lengthi++) {
    
this["button"+i].id i;
    
this["button"+i].onRollOver = function() {
        
this.onEnterFrame = function() {
            
this.nextFrame();
            if (
this._currentframe == this._totalframes) {
                
delete this.onEnterFrame;
            }
        };
    };
    
this["button"+i].onRollOut = function() {
        
this.onEnterFrame = function() {
            
this.prevFrame();
            if (
this._currentframe == 1) {
                
delete this.onEnterFrame;
            }
        };
    };
    
this["button"+i].onRelease = function() {
        
_root.container_mc.unloadMovie();
        
loadMovie(sites[this.id-1]+'.swf'"container_mc");
    };

Für Hilfe bin ich wirklich dankbar.

Grüße Philip
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 25-03-2007, 10:01   #2 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Okay dann nicht... Woran liegts? hab ich mein Problem nicht deutlich geschildert? verlang ich zu viel von euch?
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 25-03-2007, 14:50   #3 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
hi,

also woran es wohl liegt:

genau, du hast dein problem nicht deutlich geschildert.
deine frage klingt allgemein so, als wäre sie leicht zu lösen, indem man eine eine gewisse berechnung durchführen lässt.
um aber wissen zu können, wo man diese berechnung einbaut, muss man sich erstmal durch verhältnismäßig viel code arbeiten.
noch dazu ist deine frage recht kompliziert gestellt, sodaß ich auch nach dem dritten lesen noch nicht wirklich weiß, worum es geht.

tip:
problem abstrahieren, auf das wesentliche reduzieren und eine verständliche frage dazu stellen. und um es uns einfacher zu machen am besten eine swf zum angucken hochladen. RAR-files, die FLAs beinhalten, saugt sich hier doch sowieso kaum jemand.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 25-03-2007, 15:14   #4 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Okay, das ist doch ne Aussage, mit der ich was anfangen kann.

Also ich hab die SWF jetzt noch zum anschauen hochgeladen:

http://www.philipisik.de/flashforum/flash_site.swf

Wie man dort sieht, öffnet sich, wenn ich auf Button 1 klicke darunter das Feld, wo "hier folgt Inhalt" steht. Wie man in meinen Script im ersten Posting sieht, ist das eine swf, die via loadMovie in einen MovieClip geladen wird. Über die onResize Funktion in meinem AS steuere ich ja, dass ich bei Veränderung der Bühnengröße alles horizontal und vertikal mittig zentiert. Wenn ich jetzt auf Button 1 klicke würde ich gerne, dass sich sozusagen die Reihe mit den Buttons nach oben schiebt, sodass jetzt die Buttons und der Container mit dem geladenen Inhalt als gesamtes vertikal mittig zentiert werden.

Hat jemand Stichworte für die Suchfunktion, wonach ich suchen sollte, oder kennt jemand zufälliger Weise einen Tread, wo mein Problem behandelt wird, oder besitzt jemand bereits eine fla, die mein Problem löst und er sie mir schicken könnte.

Die von mir in der Suche verwendeten Begriffe führten leider zu keinem brauchbaren Ergebnis.

lg Philip
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 25-03-2007, 18:06   #5 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
hi, na so ist das natürlich viel besser.

aber ehrlich gesagt erkenne ich da immer noch kein echtes problem.
stört es dich, daß beim rescale alles quasi etwas zu weit unten hängt?
über den buttons ist mehr platz als unter dem inhalt.

aber das lässt sich natürlich schnell ändern, indem du einfach etwas andere werte für die y-positionen angibst.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 26-03-2007, 15:32   #6 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
Sorry, war die letzten beiden Tage nicht am PC und im Flashforum, deswegen hier meine Antwort auf deine Frage:

Also Mein Problem ist, dass ich nicht weiß, wie ich folgendes umsetze:

Wenn ich auf den Button klicke, öffnet sich ja das Fenster darunter. Allerdings sollte sich dann alles vertikal mittig zentrieren. Sprich die Buttons rutschen etwas hoch und das Fenster darunter auch. Jetzt ist es ja so, dass am Anfang ein mal alles mittig zentiert wird und danach nicht mehr.
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi ist offline   Mit Zitat antworten
Alt 26-03-2007, 15:35   #7 (permalink)
Ohne Worte
 
Benutzerbild von Masterpi
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 472
ich glaub ich habs. Ist zwar nicht dynamisch aber ich hab das Grundprinzip erstmal. Ist eigentlich wirklich easy... in schreibe in die onRelease-Funktion der Buttons einfach, dass sie um die gewünschte Höhe hochrutschen und der Container auch...


Kann man die Höhe des Containers eigentlich berechnen lassen, nachdem die SWF dort reingeladen wurde und diesen Wert dann meine onRelease-Funktion übergibt? Sodass ich ich auch unterschiedlich hohe SWF in den Container reinladen könnte. Mit meiner statischen Version wäre ja immer nur eine Verschiebung um denselben Wert möglich.
__________________
Wie kommt mein Öl unter deinen Boden?
Masterpi 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 10:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele