Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Bitmap.smoothing - come diminuire la distorsione delle immagini

This is a discussion on Bitmap.smoothing - come diminuire la distorsione delle immagini within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Buon Lunedì a tutti ! Ho ricevuto diverse domande a riguardo dell' utilità gratuita visualizzatore immagini in 3D , precisamente riguardo a ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  5 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 21-09-07, 10:34
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Bitmap.smoothing - come diminuire la distorsione delle immagini

Buon Lunedì a tutti !
Ho ricevuto diverse domande a riguardo dell' utilità gratuita visualizzatore immagini in 3D , precisamente riguardo a come possono espandersi le immagini senza distorcersi troppo.
Alcune e-mails ricevute affermavano che utilizzavo delle immagini ad alta risoluzione, ma questo non è corretto.
Le immagini utilizzate sono ottimizzate al massimo per il web e niente alta risoluzione.
Il ' trucco ' per non far distorcere le immagini che utilizziamo per le animazioni è semplicemente un parametro che possiamo settare cliccando l' immagine in libreria col destro, andiamo in proprietà e noteremo una opzione ' allow smoothing '. Bene, se attiviamo quell' opzone, Flash ridurrà drasticamente le distorsioni di quella immagine in fase di animazione ( movimento o ingrandimento ).
Ecco il punto: e se l' immagine non è in libreria ma viene caricata esternamente in runtime ?
La risposta è la proprietà smoothing della classe Bitmap di Actionscript 3.0 .

Vediamo un esempio per capirci meglio...*



















Il primo esempio ha la proprietà smoothing=false, mentre il secondo smoothing=true

Vediamo come farlo via codice.

Creo un FLA che salvo con nome ' main.fla '.
Niente al suo interno. Solo dichiariamo la sua Document Class, un file AS che salvo con nome ' Main.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.events.Event;
	
	public class Main extends MovieClip
	{
		private var loader:Loader;
		
		private var startWidth:Number;
		private var startHeight:Number;
		
		public function Main()
		{
			init();
			loadImage();
		}
		
		private function init():void
		{
			stage.frameRate=31;
		}
		
		private function loadImage():void
		{
			var request:URLRequest=new URLRequest('http://www.flepstudio.org/swf/sintassi/allow_smoothing/pic_0.jpg');
			loader=new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completed);
			loader.load(request);
		}
		
		private function completed(evt:Event):void
		{
			addChild(loader);
			startWidth=loader.width;
			startHeight=loader.height;
			loader.addEventListener(Event.ENTER_FRAME,moveMe);
		}
		
		private function moveMe(evt:Event):void
		{
			evt.target.width+=2;
			evt.target.height+=2;
			if(evt.target.width>stage.stageWidth)
			{
				evt.target.width=startWidth;
				evt.target.height=startHeight;
			}
		}
	}
}
Come vediamo dal codice, viene caricata un' immagine esterna utilizzando un Loader.
A caricamento avvenuto, viene applicata a loader ( l' istanza del Loader che ha caricato l' immagine ) uuna animazione e cioè il contenuto di loader viene allargato sia in width che in height.
In questo caso non utilizzando la proprietà smoothing, il risultato è decisamente brutto.

Se noi invece, quando loader ha terminato il caricamento dell' immagine ( quindi nel metodo: private function completed ), scrivessimo queste poche righe in più:
aggiungo loader allo stage ( altrimenti non sarebbe visibile )
addChild(loader);
creo una variabile di tipo Bitmap alla quale assegno il valore del contenuto di loader e forzo il tipo a Bitmap ( as Bitmap )
var image:Bitmap=loader.content as Bitmap;
assegno true alla proprietà smoothing di image
image.smoothing=true;

In questo modo il risultato cambia decisamente in meglio.
Abbiamo sfruttato al massimo una immagine di dimensioni 280x187 che pesa solo 8KB !

Alla prossima !
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Actionscript 3 Preloader con Bitmap Lit Actionscript 3.0 avanzato 0 14-09-08 20:57
swf to bitmap dan.groza Actionscript 3.0 avanzato 1 28-05-08 22:49
Bitmap.smoothing - how to reduce image distortion Flep Tutorials 4 28-05-08 22:13
scorrimento e arresto delle immagini in flash Webman Flash CS3 generale 7 27-03-08 09:43
problema distorsione testo con Flash malcico AIUTO utilità free 0 01-02-08 11:16


All times are GMT. The time now is 11:31.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406