Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-03-2004, 15:14   #1 (permalink)
Gedankengestalter
 
Benutzerbild von TheFreeman
 
Registriert seit: May 2002
Ort: Bayern
Beiträge: 486
Question geladenes Bild oder MC in Objekt einpassen bzw. skalieren

Hi, Leute !

Ich möchte einen geladenen Film oder ein geladenes Bild, das ich in einen container lade, an einen Rahmen anpassen.

Das geladene Objekt soll nicht gezerrt, sondern proportional skaliert werden und sich dann innerhalb des Rahmen befinden.

Die geladenen Objekte haben unterschiedliche Größen. mal sind sie komplett kleiner als der Rahmen und einmal ist nur die Höhe größer und einmal nur die Weite.

soweit bin ich schon, aber das klappt nicht so ganz:

ActionScript:
  1. // skal und weite sind Höhe und Weite vom Rahmen
  2. with (img) {
  3.                  skalierung = skal / _height * 100;
  4.                         _xscale = _yscale = skalierung;
  5.                             // Bild auf der y-Achse am "chg"-Objekt ausrichten
  6.                         _y = y-(_height/2);
  7.                             // Bild auf der x-Achse am "chg"-Objekt ausrichten
  8.                         _x = x-(weite/2)-(_width-weite)/2;
  9.                     trace(skalierung add" <-- Skaliermass");
  10.                     trace("Bild jetzt "add int(_width) add" x "add int(_height));
  11.                         // Alpha_wert setzen
  12.                     _alpha = (!alpha) ? 100 : alpha;
  13.                         // Bild anzeigen
  14.                     _visible = true;
  15.                 }

Ich dreh noch durch.
Hilfääää...
__________________
AS3 Lernhilfen

Geändert von TheFreeman (11-03-2004 um 15:18 Uhr)
TheFreeman ist offline   Mit Zitat antworten
Alt 11-03-2004, 16:22   #2 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Ich würde halt schauen, welche die größere Seite des Bildes ist, und diese An den Rahmen anpassen. Die andere Seite dann auch mit dem "Skalierungsfaktor" mutiplizieren.
Ist das nicht das, was du eigetnlich willst?
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 11-03-2004, 16:47   #3 (permalink)
Gedankengestalter
 
Benutzerbild von TheFreeman
 
Registriert seit: May 2002
Ort: Bayern
Beiträge: 486
hihi...

ja, aber da steh ich immer noch vor dem gleichen Problem:

Ich habe nämlich vier mögliche zustände:
1. Die Höhe ist größer und Weite ist kleiner
2. Die Höhe ist kleiner und die Weite ist größer
3. Die Höhe und die Weite sind größer
4. Die Höhe und die Weite sind kleiner

Die Skalierung ist dann jedesmal anders.
Wie soll ich das alles unter einen Hut bringen??????
__________________
AS3 Lernhilfen
TheFreeman ist offline   Mit Zitat antworten
Alt 11-03-2004, 17:30   #4 (permalink)
Flash & TYPO3
 
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 2.700
Das würde ich nicht so sehen:


1. Möglichkeit: Bild-Breite größer als Bild-Höhe => Verhältnis zw. Bild-Breite und Container-Breite errechnen und Bild-Berite und -Höhe entsprechend anpassen

2. Möglichkeit: Bild-Höhe größer als Bild-Breite => analog
__________________
Mediendesign-Student
johanness ist offline   Mit Zitat antworten
Alt 12-03-2004, 11:53   #5 (permalink)
Gedankengestalter
 
Benutzerbild von TheFreeman
 
Registriert seit: May 2002
Ort: Bayern
Beiträge: 486
Ich hab´s jetzt so gelöst.
Klappt schonmal ganz gut, aber nicht perfekt:

ActionScript:
  1. with (img) {
  2.                 trace("Bild: "add datei);
  3.                     trace("Bild vorher "add int(_width) add" x "add int(_height));
  4.                     trace("Hintergrund "add int(weite) add" x "add int(skal));
  5.                         // Bildgröße an das "chg"-Objekt anpassen
  6.                     if(_width < weite && _height > skal){ skalierung = skal / _height * 100; }
  7.                     else if(_width > weite && _height < skal){ skalierung = weite / _width * 100; }
  8.                     else if(_width > weite && _height > skal){
  9.                         hu = _height - skal; wu = _width - weite;
  10.                         if(hu < wu){ skalierung = weite / _width * 100; }
  11.                         if(hu > wu){ skalierung = skal / _height * 100; }
  12.                     }
  13.                     else if(_width < weite && _height < skal){
  14.                         hu = skal - _height; wu = weite - _width;
  15.                         if(hu < wu){ skalierung = weite / _width * 100; }
  16.                         if(hu > wu){ skalierung = skal / _height * 100; }
  17.                     }
  18.                     _xscale = _yscale = skalierung;
  19.                         // Bild auf der y-Achse am "chg"-Objekt ausrichten
  20.                     _y = y-(_height/2);
  21.                         // Bild auf der x-Achse am "chg"-Objekt ausrichten
  22.                     _x = x-(weite/2)-(_width-weite)/2;
  23.                     trace(skalierung add" <-- Skaliermass");
  24.                     trace("Bild jetzt "add int(_width) add" x "add int(_height));
  25.                         // Alpha_wert setzen
  26.                     _alpha = (!alpha) ? 100 : alpha;
  27.                         // Bild anzeigen
  28.                     _visible = true;
  29.                 }

Das wird schon npch.
__________________
AS3 Lernhilfen
TheFreeman ist offline   Mit Zitat antworten
Alt 12-03-2004, 12:07   #6 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hi freeman.

hier ein kleines script nur zum ausrichten:
ActionScript:
  1. if(rahmen._width/rahmen._height>img._width/img._height){
  2.     img._height=rahmen._height
  3.     img._xscale=img._yscale;
  4. }else{
  5.     img._width=rahmen._width
  6.     img._yscale=img._xscale
  7. }
  8. img._x=rahmen._x-img._width/2
  9. img._y=rahmen._y-img._height/2

grüße.
smirgel.
__________________
bei fragen, fragen.
Smirgel 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 14:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele