Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-02-2006, 20:13   #1 (permalink)
FlyIng HOrsE
 
Benutzerbild von pegasus75
 
Registriert seit: Oct 2001
Ort: Berlin
Beiträge: 101
Question movieclips dynamisch skalieren

Hallo,

schon seit midstens 2 Tagen sitze ich an folgendem Problem und komm einfach nicht weiter.
Ich lade einen Movieclip mit loadMovie, in diesem Beispiel ist er 640x480 Pixel groß. Ich frage ab ob er geladen ist, und wenn es so ist dann soll er ihn skalieren.
Er skaliert die Movies irgentwie nach Lust und Laune. Ich hab dafür keine Erklärung mehr.
Der videoeimer liegt rechts neben der Bühne und ist ein leerer Movieclip. zeit_mc ist eine Zeit- und Loadinganzeige.
Bin für jede Hilfe echt dankbar. Die Files sind im Anhang auch nochmal alle da.

Hier mein Script:

ActionScript:
  1. function movieScale(toWidth, toHeight, movieObj)
  2. {
  3.     var percentScaleWidth;
  4.     var percentScaleHeight;
  5.     percentScaleWidth =  Math.round((toWidth * 100) / movieObj._width);
  6.     percentScaleHeight = Math.round((toHeight * 100) / movieObj._height);
  7.     movieObj._xscale = percentScaleWidth;
  8.     movieObj._yscale = percentScaleHeight;
  9. }
  10.  
  11. var swfFileName;
  12. swfFileName="test.swf";
  13. var scaleToX = 386.6;
  14. var scaleToY = 290.0;
  15.  
  16.  
  17. _root.videoeimer.loadMovie(swfFileName);
  18. this.zeit_mc.playing_mc.gotoAndStop(1);
  19. this.zeit_mc.loading_mc.gotoAndStop(1);
  20. _root.onEnterFrame = function()
  21. {
  22.     if((_root.videoeimer.getBytesLoaded() == _root.videoeimer.getBytesTotal())
  23.     &&(_root.videoeimer._width > 0 && _root.videoeimer._height > 0))
  24.     {
  25.         _root.movieScale(_root.scaleToX, _root.scaleToY, _root.videoeimer);
  26.         _root.videoeimer._x = 46.17;
  27.         _root.videoeimer._y = 17.5;
  28.         delete this.onEnterFrame;
  29.     }
  30. }
Angehängte Dateien
Dateityp: rar dynscalemovie.rar (33,0 KB, 10x aufgerufen)
__________________
:) :] :} :o §:

Geändert von pegasus75 (27-02-2006 um 20:21 Uhr)
pegasus75 ist offline   Mit Zitat antworten
Alt 27-02-2006, 20:36   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..Er skaliert die Movies irgentwie nach Lust und Laune.."

ER nun wieder. ist klar nee .. ;-)

die grösse, die du beim erstellen des fla's angibst ist garnichts! bestenfalls eine hilfe beim erstellen der fla, oder der html-seite. sonst nichts. es gibt auch keinen AS befehl, der dir diese grösse zurückgeben würde.

die objekte im frame machen die grösse aus! ist auf deinem 1. frame z.b. garnichts, dann ist die grösse auch Null. und wenn du nur ein rechteck auf der bühne hasst, dann ist eben nur das zum vermessen da. und wenn etwas übersteht, dann wird da niemals etwas abgeschnitten, weil es da keinen rand gibt.

a) du weisst ja, wie gross deine swf's sind, dann setze den wert direkt ein. oder
b) leg auf den hindergrund ein rechteck (kann ja alhpa=0 haben), das so gross ist, wie du die fla eingestellt hasst. aber achtung, wenn was übersteht, das zählt mit. selbst wenn es maskiert ist ist es dennoch da.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-02-2006 um 20:37 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-02-2006, 23:13   #3 (permalink)
FlyIng HOrsE
 
Benutzerbild von pegasus75
 
Registriert seit: Oct 2001
Ort: Berlin
Beiträge: 101
aber flash stretcht den mc nicht wenn ich das stretchobject aus der libary attache.

ActionScript:
  1. obj = _root.emptyClip;
  2. obj.loadMovie("00000001.swf");
  3. obj._xscale = 10;
  4. obj._yscale = 10;
  5. obj.attachMovie("filler","filler",obj.getNextDepth(),{_x:0,_y:0})
__________________
:) :] :} :o §:
pegasus75 ist offline   Mit Zitat antworten
Alt 28-02-2006, 02:25   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
setz mal dein klötzchen in der test.fla links oben auf den nullpunkt. dann stimmt das.
denn du scalierst ja nicht den klotz alleine, sondern dessen container. da kommt, was rechts aussen steht natürlich noch weiter nach draussen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 01-03-2006, 16:19   #5 (permalink)
FlyIng HOrsE
 
Benutzerbild von pegasus75
 
Registriert seit: Oct 2001
Ort: Berlin
Beiträge: 101
Hilft mir nicht weiter, aber die Idee ist gut :)

Deine Idee war auf jeden Fall sehr gut, aber ich glaube in meinem Fall hilft es mir nicht wirklich weiter. Ich weiss eben nicht wie gross die Movies sind, da sie von irgentwoher von allen sein können und definitiv keinem Standard folgen.
Meine letzte Idee war den Container mit dem Movie einfach auf eine Grösse von 0.0001% zu bringen und dann den Movie mit dem Filler dort hineinzusetzen, auf das der den Container auf die feste Grösse stretcht.
Das hatte aber auch nicht funktioniert.

Pega
__________________
:) :] :} :o §:
pegasus75 ist offline   Mit Zitat antworten
Alt 01-03-2006, 17:24   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
dann lass dir getBonds geben. mit xMin, xMax uns. kannst du die grösse ermitteln und so das ding erst mal auf null setzen. dann scalieren.
zählt aber auch nur für den 1. frame.

"..und definitiv keinem Standard folgen.."
tja, 'kraut und rübern' kann man nur als 'kraut und rübern' verkaufen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 02-03-2006, 19:08   #7 (permalink)
FlyIng HOrsE
 
Benutzerbild von pegasus75
 
Registriert seit: Oct 2001
Ort: Berlin
Beiträge: 101
Cool

also wenn in allen movieclips nen viereckiges video oder so drin ist, dann kann ichs nach der methode immer erst auf annähernd 0 skalieren und dann auf meine gewünschte grösse?


"...zählt aber auch nur für den 1. frame...."
also er gibt die bounds für den 1.Frame zurück?

Pega
__________________
:) :] :} :o §:
pegasus75 ist offline   Mit Zitat antworten
Alt 02-03-2006, 20:37   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..also er gibt die bounds für den 1.Frame zurück?.."
hallo, mit-den-ken

wenn du ein swf läd'st, dann befindest du dich dort auf frame 1. das programm kann nicht wissen, ob auf frame 13 (<-- diese zahl ist jetzt nur ein beispiel) irgend etwas aus dem 'rahmen' fällt.

bzw. der klassiker: wenn auf dem 1. frame garnichts ist (weil es erst auf frame 2 losgeht), dann ist auch dessen grösse == 0.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 03-03-2006, 21:04   #9 (permalink)
FlyIng HOrsE
 
Benutzerbild von pegasus75
 
Registriert seit: Oct 2001
Ort: Berlin
Beiträge: 101
ich wollt doch nur nochmal bestätigt haben ob die Werte die flash bei getBounds() zurückgibt nur für den ersten Frame gelten.
Also ja. OK, damit kann ich leben.

vielen Dank
und
schönes Wochenende
__________________
:) :] :} :o §:
pegasus75 ist offline   Mit Zitat antworten
Alt 04-03-2006, 12:06   #10 (permalink)
Neuer User
 
Benutzerbild von _Max_
 
Registriert seit: May 2003
Beiträge: 2.475
hab jetzt nicht alles gelesen,aber man kann das mit dem skalieren doch auch
recht einfach so lösen :


PHP-Code:
deinMC._xscale temp._yscale=Math.random()*100+10
__________________
!!! www.verblitzt.de !!!
_Max_ 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 01:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele