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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-12-2008, 13:14   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
Hintergrund-Foto per Zufall ändern & an Browser anpassen

Hallo,
ich habe zwei scripte verarbeitet, die sich gegenseitig nicht mögen:

1. Script, das den Hintergrund an den Browser anpasst
Code:
// ---------------------------------------------------------------------------------- foto skalieren proportional
bgMc.HB = bgMc._height / bgMc._width;
bgMc.BH = bgMc._width / bgMc._height;
minPicWidth = 800; /// min. größe
minPicHeight = minPicWidth * bgMc.HB; /// min. größe
Stage.scaleMode = "noScale";
Stage.align = "LT";
stageListener = new Object();
 ///////////////////////////////////////////////////////////////////////// wenn kein min. größe
/*stageListener.onResize = function() {
        bgMc._height = (Stage.height/Stage.width < bgMc.HB) ? bgMc.HB * Stage.width : Stage.height;
        bgMc._width = (Stage.width/Stage.height < bgMc.BH) ? bgMc.BH * Stage.height : Stage.width;
    	// meunue immer in der Mitte
    	bgMc._x = Stage.width/2 - bgMc._width/2;
};*/
Stage.addListener(stageListener);
///////////////////////////////////////////////////////////////////////// wenn kein min. größe END
stageListener.onResize = function() {
    if(Stage.width > minPicWidth || Stage.height > minPicHeight ){
        bgMc._height = (Stage.height/Stage.width < bgMc.HB) ? bgMc.HB * Stage.width : Stage.height;
        bgMc._width = (Stage.width/Stage.height < bgMc.BH) ? bgMc.BH * Stage.height : Stage.width;
		
		
    }
    
};

// damit auch schon vor dem ersten resize die werte stimmen
stageListener.onResize(); 
// ---------------------------------------------------------------------------------- foto skalieren proportional END
und
2. Script das zufällig die Bilder wechselt
Code:
// ---------------------------------------------------------------------------  Zufälliger Hintergrund beim Laden
var zufallswert = Math.ceil(Math.random()*6);
//trace(zufallswert);
var dateiname = zufallswert + ".jpg";
//trace(dateiname);

this.loadMovie(dateiname);   // wenn in Hauptzeitleiste dann mit "bgMc.loadMovie (dateiname)" ...

// ---------------------------------------------------------------------------  Zufälliger Hintergrund beim Laden END
Das erste Skript (liegt in der Hauptzeitachse) funktioniert alleine. Sobald ich das zweite (liegt in einem MovieClip) hinzufüge, wird das Hintergrundbild nicht mehr proportional zur Bildgröße verändert - das soll heisen es wird gequetscht und gedehnt.




Kann mir jemand sagen wie ich das lösen kann?
Ich bin ein AS-Anfänger und vernwede AS2 unter AdobeFlashCS3.

Wollte das fla posten ist aber mit 134kb zu groß - schicke es aber gerne per mail zu

Vielen Dank schon mal vorab!
d
quer ist offline   Mit Zitat antworten
Alt 03-12-2008, 00:40   #2 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 1
Hi,

ich hatte glaube ich mal ein ähnliches Problem.
Hat der Ziel-MC (bgMc) schon irgendein Inhalt, also z.B. einen anderen MC ?
Daran hat es bei mir gelegen. Beim Laden in einen komplett leeren MC hat er dann nichts mehr verzerrt.

Gruß,
yasimo
yasimo ist offline   Mit Zitat antworten
Alt 03-12-2008, 00:56   #3 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.402
hi,

du musst doch bei jedem neuen Bild die Werte für bgMc.HB und bgMc.BH neu
ermitteln, sonst rechnest du ja in der onResize Funktion mit falschen Größen.

Edit:
minPicHeight ist davon dann natürlich auch betroffen. Dieser Wert muss auch
aktualisiert werden. An deiner Stelle würd ich die Berechnungen für die Werte
in die onResize Funktion mit rein packen.
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs

Geändert von :: RK :: (03-12-2008 um 13:26 Uhr)
:: RK :: ist offline   Mit Zitat antworten
Alt 05-12-2008, 09:16   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
erst mal vielen vielen Dank für die schnellen Antworten!!!!
und ein ganz großes Entschuldigung, dass ich erst so spät anworte - hatte aber leider ein computerproblem und konnte mich nicht mehr einloggen ... sorry!

so jetzt aber ...
zu yasimo:
ja, mein Ziel-MC hat einen Inhalt - nur wenn ich den raus nehme, dann kommt nichts mehr.
Bevor ich den Zufallswechsler eingefügt hatte, stand in diesem MC das Hintergrund-Foto. Da das aber immer vor dem Laden des neuen Bildes kurz aufgebinkt hat, hab ich das rausgenommen - dann erschien gar kein Foto mehr - schließlich hab ich mit einer Fläche gearbeitet - wenn die kleiner ist wird auch das Hintergrundbild dementsprechend kleiner?!? Es mss also in dem MC etwas sein, das den Maßen des zu wechselnden Bildes entspricht.


zu RK:
klingt, als wenn das ne Lösung sein könnte. Leider weiß ich überhaupt nicht wie ich das umsetzen muss. Könntest Du mir da eventuell mit einem Skript weiter helfen?
quer ist offline   Mit Zitat antworten
Alt 08-12-2008, 10:32   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
Hallo ...?
war ich zu spät?
quer ist offline   Mit Zitat antworten
Alt 08-12-2008, 12:58   #6 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.402
Du musst doch nur die Werte aktualisieren. Wo genau ist das Problem?
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 08-12-2008, 14:24   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
... dass ich nicht weis, wie das aktualisieren geht ...
quer ist offline   Mit Zitat antworten
Alt 08-12-2008, 14:37   #8 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.402
Ich hab mal schnell was gemacht.

Zum testen neue fla (AS2) anlegen und abspeichern, folgendes Script ins erste Frame packen und 4 bilder mit der bezeichnung "bg0.jpg" bis "bg4.jpg" ins gleiche verzeichnis wie die fla kopieren. Um ein neues Bild zu laden, einfach mit der Maus klicken.

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

var 
TL:MovieClip this;
TL.counter 0;
var 
mc:MovieClip TL.createEmptyMovieClip("bgMc"1);

var 
stageListener:Object = new Object();
Stage.addListener(stageListener);
stageListener.onResize = function()
{
    if(
Stage.width<Stage.height)
    {
        
mc._height mc._height * (Stage.width/mc._width);
        
mc._width Stage.width;
    }
    if(
Stage.height<Stage.width)
    {
        
mc._width mc._width * (Stage.height/mc._height);
        
mc._height Stage.height;
    }
};

var 
MCL:MovieClipLoader = new MovieClipLoader();
var 
mclListener:Object = new Object();
MCL.addListener(mclListener);
mclListener.onLoadInit = function ()
{
    
stageListener.onResize();
}

// Neues Bild laden durch MouseClick
var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);
mouseListener.onMouseUp = function ()
{
    
MCL.loadClip("bg"+TL.counter+".jpg"mc);
    (
TL.counter 4) ? TL.counter ++ : (TL.counter 0);

__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 08-12-2008, 14:49   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
... vielen vielen dank für die Arbeit, die Du Dir gemacht hast ...
ich werde das später gleich mal ausprobieren ...

nur noch eine Zwischenfrage:
ich möchte, dass die Bilder zufällig beim Starten der Seite wechseln (nicht beim Mausklick) - also immer wenn die Seite neu im Browser aufgerufen wird ...
quer ist offline   Mit Zitat antworten
Alt 08-12-2008, 14:58   #10 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.402
Zitat:
Zitat von quer Beitrag anzeigen
nur noch eine Zwischenfrage:
ich möchte, dass die Bilder zufällig beim Starten der Seite wechseln (nicht beim Mausklick) - also immer wenn die Seite neu im Browser aufgerufen wird ...
Anstelle des MouseEvents machste halt irgendeine Random-Berechnung.
In diesem Fall wäre folgendes möglich:
PHP-Code:
TL.Math.floor((Math.random()*10)/2);
MCL.loadClip("bg"+TL.t+".jpg"mc); 
Hier schwangt der Wert jetzt zwischen 0 und 4. Das musst du dann an deine
Bedürfnisse anpassen.
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs

Geändert von :: RK :: (08-12-2008 um 15:00 Uhr)
:: RK :: ist offline   Mit Zitat antworten
Alt 17-12-2008, 01:37   #11 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
wenn schon, denn schon ... jetzt bin ich auch noch krank geworden - also noch mal: ein dickes Entschuldigung für mein spätes Feedback!


Zitat:
Zitat von :: RK :: Beitrag anzeigen
Ich hab mal schnell was gemacht.



...

habe das gerade ausprobiert - funktioniert soweit auch ganz gut -
nur das im ersten Post beschriebene "Quetsch-Stauch-Problem" besteht weiter hin.
Ich will aber unbedingt das Seitenverhälnis des Hintergrund-Bildes beibehalten!!
quer ist offline   Mit Zitat antworten
Alt 17-12-2008, 03:33   #12 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.402
Zitat:
Zitat von quer Beitrag anzeigen
habe das gerade ausprobiert - funktioniert soweit auch ganz gut -
nur das im ersten Post beschriebene "Quetsch-Stauch-Problem" besteht weiter hin.
Ich will aber unbedingt das Seitenverhälnis des Hintergrund-Bildes beibehalten!!
Das ist etwas widersprüchlich. Wenn mein Script bei dir funktioniert hat,
dann sollten sämtliche Bilder ihre Seitenverhältnisse beibehalten und nur
proportional skaliert werden.

Zeig mal deinen Code.
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 17-12-2008, 11:01   #13 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Ort: marseille / nürnberg
Beiträge: 17
dann wird der Fehler wohl an anderer Stelle liegen ...
da mitlerweilen die .fla zu groß ist pack ich das mal in eine Zip ...
mit allem drum und dran ... und leg das hier ab: www.quer.org/flashforum.zip

wenn Du die index.html bzw. die transform.swf öffnest - siehst Du, wie ich das haben möchte - zum Test musst Du das Fenster größer/kleiner ziehen.
Deine Datei ist in der main.swf - hier wird der Hintergrund gequetscht/gedehnt beim Ändern der Fenster-Größe. Dein Code liegt in der main.fla frame 1 ganz unten.

danke noch mal für deine hilfe ...
d
quer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
anpassen, browser, hintergrund, zufall

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 05:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele