1&1 DSL
Flashhilfe.de - Flash Community

Bilder glätten bei dynamischem Laden [Flash 9]

Forum > ActionScript 3.0 > Bilder glätten bei dynamischem Laden

 


AntwortenRegistrieren Seite1  

 30.03.2009, 15:20 
Beiträge: 65
Wohnort: KA
Registriert: Sep 2008

Bilder glätten bei dynamischem Laden
Hallo,

ich lade Bilder dynamisch ein einen MovieClip. Beim Skalieren wird dieser aber pixelig.
Durch smoothing kann ich das ja ändern, aber leider schaffe ich es nicht.

mein Code:
ActionScript:
1
2
3
4
5
6
7
8
var loader:Loader = new Loader();
         loader.load(new URLRequest(bilder<i>.dateiname));
         

         Bild1.mc_maske.addChild(loader);
         Bild1.mc_maske.smoothing = true;
         Bild1.mc_maske.scaleX = 0.2;
         Bild1.mc_maske.scaleY = 0.2;


Kann ich smoothing auf einen MovieClip überhaupt anwenden.
Ich habe auch schon versucht das Bild als Bitmap zu laden, aber da habe ich leider keinen Code zusammenbekommen der funktioniert hat.

Das Script muss unbedingt in AS3 laufen.
 30.03.2009, 16:16Re1
Benutzerbild von derFloh
Beiträge: 989
Wohnort: ..::LAGE::..
Registriert: Apr 2006

hey!

die bitmap klasse verfügt über diese eigenschaft...
wenn das bild geladen ist, nimmst du die bitmapdatan
und schreibst eine bitmap davon. die attachest du auf
die bühne...
ActionScript:
1
2
3
4
5
6
var bmd:BitmapData = new BitmapData( clip.width, clip.height );
   bmd.draw( clip );

var clone:Bitmap = new Bitmap( bmd, "auto", true );
addChild( clone );
//irgendwie so


Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)
Initializes a Bitmap object to refer to the specified BitmapData object.


gruß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
 30.03.2009, 18:41Re2
Beiträge: 65
Wohnort: KA
Registriert: Sep 2008

Themenautor/in

Hi Danke für die Antwort,

ich verstehe nicht ganz wie ich das Bild aus dem loader in ein Bitmap bekomme.

Ist "Clip" dann mein MovieClip den ich nehme. addChild geht bei einem Bitmap ja nicht. Ich kriege es also nicht befüllt....
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 30.03.2009, 22:07Re3
Benutzerbild von derFloh
Beiträge: 989
Wohnort: ..::LAGE::..
Registriert: Apr 2006

hey, wenn du von extern lädst, ists gar nicht viel anders. du kannst direkt die bitmap aus deinem loader.content erstellen:
bitMap = Bitmap( loader.content );

im anhang ein beispiel...
das ergebnis sieht so aus:


gruß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring

Angehängte Dateien:
Komprimierte Datei smooth.zip106.25 KB
 31.03.2009, 09:10Re4
Beiträge: 65
Wohnort: KA
Registriert: Sep 2008

Themenautor/in

Hi, vielen vielen Dank,

das Script funktioniert eigentlich wunderbar.
Ich rufe in einer Schleife die Funktion mehrere Male auf, leider added er mir immer nur das letzte Bild auf die Bühne, ich weiss nicht woran das liegt...

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
for (var k:int = 0; k < bilder.length; k++) {
      
      // Eigenschaften vergleichen und dann ggf hinzufügen
      var my_array:Array = bilder<i>.eigenschaften.split(",");
      my_array.sort();
      var eigenschaftaktiv = false;
      for (var o:int = 0; o < my_array.length; o++) {
         if (my_array[o] == eigenschaftsWort) {eigenschaftaktiv = true;}
      }
      // Bilder hinzufügen wenn Eigenschaftswort aktiv ist
      if (eigenschaftaktiv == true) {
         var BilderSprite = new BilderListe();
         BilderSprite.x = -500;
         BilderSprite.y = -500;
         bilderClips.addChild(BilderSprite);
   
         var Bild1 = new bildClip();   
         BilderSprite.addChild(Bild1);
         
         var bitMap:Bitmap;
         var loader:Loader = new Loader();
         loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoaded );

         function onLoaded( e:Event ):void
         {
            bitMap = Bitmap( loader.content );
            bitMap.scaleX = .2;
            bitMap.scaleY = .2;
            bitMap.smoothing = true;//         <---
            Bild1.mc_maske.addChild( bitMap );
         }

         loader.load( new URLRequest( bilder<i>.dateiname ) );
         trace("Durchgang: " +k);
         Bild1.txt_titel.text = bilder<i>.untertitel;
         
      } // Ende Eigenschaften IF
   
   } // Ende For Schleife
 31.03.2009, 11:01Re5
Benutzerbild von derFloh
Beiträge: 989
Wohnort: ..::LAGE::..
Registriert: Apr 2006

hey
das mag wohl sein, du startest ja auch alle ladevorgänge gleichzeitig.
das ist gar nicht so schick alles in eine schleife zu packen. und dann noch die funktion innerhalb der schleife etc.
habe gerde keine zeit das umzuschreiben (musst du auch selbst üben :) ... lass die schleife weg, und start die ladevorgänge nacheinander! also eine function die das laden startet und eine, die du beim complete aufrufst... dann definierst du eine variable außerhalb und zählst die einfach hoch.
also

var i.... = 0;

function starte()
{
if(i < wasWeissIch)
{
//load()
//addEventListener...
}
}

function oncomplete()
{
//bitmapkram
//i++
//starte()
}


gruß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
 
nicht sichtbar bei eingeloggten Mitgliedern
 31.03.2009, 15:14Re6
Beiträge: 65
Wohnort: KA
Registriert: Sep 2008

Themenautor/in

Hi,

vielen vielen Dank. Ich habe dein Tip beachtet und es hinbekommen.
Ohne Schleife etc.

Vielen Vielen Dank.
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de