Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Caricare un swf esterno con Flash CS3

This is a discussion on Caricare un swf esterno con Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Non c'è più...loadMovie non c'è più :) finalmente :) Lo ritenevo un metodo davvero inutile. Con Actionscript 3.0 e Flash ...


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
  4 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 19-09-07, 13:56
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Caricare un swf esterno con Flash CS3

Non c'è più...loadMovie non c'è più :) finalmente :) Lo ritenevo un metodo davvero inutile.
Con Actionscript 3.0 e Flash CS3, tutti quelli che non hanno mai avuto l'occasione di apprendere la Classe MovieClipLoader di Flash 8 hanno una grandissima possibilità di farlo adesso e farlo per sempre!

AS 3.0 implementa la Classe Loader che permette di caricare files esterni al nostro swf principale.
Nell' esempio seguente spiego come poterla utilizzare al meglio e vedremo che è davvero semplice.

Come sempre, creo un FLA e lo salvo chiamandolo test_load.fla
Creo una MovieClip e la chiamo info_mc, al cui interno creo le grafiche necessarie per dare un aspetto da 'Loader', quindi con un campo di testo che visualizzerà la percentuale di caricamento ed una barra che farà altrettanto.

Creo un file AS e lo chiamo Loading.as salvandolo nella stessa cartella in cui si trova il FLA.
Loading.as ( ormai credo si sia capito :P ) è la nostra Document Class, scritta in questo modo:
Code:
package 
{
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.text.TextField;
	import flash.display.Loader;
	import flash.events.*;
	import flash.net.URLRequest;

	public class Loading extends MovieClip 
	{
		private var url:String;
		private var loader:Loader;

		public function Loading() 
		{
			stage.frameRate=31;
			info_mc.visible=false;
			
			init();
		}
		private function init():void 
		{
			url='http://www.flepstudio.org/swf/my_swf.swf?cachebuster='+new Date().getTime();
			var request:URLRequest=new URLRequest(url);
			loader=new Loader();
			initListeners(loader.contentLoaderInfo);
			loader.load(request);
		}
		private function initListeners(dispatcher:IEventDispatcher):void 
		{
			dispatcher.addEventListener(Event.COMPLETE,completato);
			dispatcher.addEventListener(IOErrorEvent.IO_ERROR,seErrore);
			dispatcher.addEventListener(Event.OPEN,inizia);
			dispatcher.addEventListener(ProgressEvent.PROGRESS,inCaricamento);
		}
		private function initButtonListener():void 
		{
			ricarica_btn.addEventListener(MouseEvent.CLICK,scarica);
		}
		private function inizia(event:Event):void 
		{
			removeButtonListener();
			info_mc.visible=true;
			debug_txt.text='INIZIO';
		}
		private function inCaricamento(event:ProgressEvent):void 
		{
			var n:uint=(event.bytesLoaded/event.bytesTotal)*100;
			info_mc.loading_txt.text='Loading '+n.toString()+' %';
			var nn:uint=(event.bytesLoaded/event.bytesTotal)*info_mc.border_mc.width;
			info_mc.fill_mc.width=nn;
			debug_txt.appendText('.');
		}
		private function completato(event:Event):void 
		{
			debug_txt.appendText('FINITO');
			info_mc.visible=false;
			addChild(loader);
			loader.x=10;
			loader.y=10;
			loader.width=loader.height=200;
			initButtonListener();
		}

		private function seErrore(event:IOErrorEvent):void 
		{
			trace("ioErrorHandler: "+event);
		}

		private function scarica(event:MouseEvent):void 
		{
			removeChild(loader);
			removeListeners(loader.contentLoaderInfo);
			init();
		}
		private function removeButtonListener():void
		{
			ricarica_btn.removeEventListener(MouseEvent.CLICK,scarica);
		}
		private function removeListeners(dispatcher:IEventDispatcher):void 
		{
			dispatcher.removeEventListener(Event.COMPLETE,completato);
			dispatcher.removeEventListener(IOErrorEvent.IO_ERROR,seErrore);
			dispatcher.removeEventListener(Event.OPEN,inizia);
			dispatcher.removeEventListener(ProgressEvent.PROGRESS,inCaricamento);
		}
	}
}
Risultato:











Naturalmente ho creato l'swf da caricare in cui, in questo caso ho inserito un'immagine di circa 1.7MB per far si che si apprezzino tutte le fasi del caricamento.


Allego i files sorgente:
Attached Files
File Type: zip CaricareSWFesterno.zip (3.44 MB, 309 views)

__________________

 


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 !

Last edited by Flep; 04-06-08 at 23:17..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #2 (permalink)  
Old 17-12-07, 14:02
Junior Member
 
Join Date: Dec 2007
Posts: 8
Rep Power: 0
halo78 is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

ho seguito tutte le specifiche per caricare e scaricare swf esterni...una domanda.
Se utilizzo questo sempice codice:

// dichiaro la funzione per caricare swf esterno
function carica (event:MouseEvent): void
{
var request:URLRequest = new URLRequest("PLAYCLIP.swf");
var loader:Loader = new Loader();
loader.load(request);
addChild(loader);
}
// azione al pulsante per richiamare la funzione "carica"
carica1.addEventListener(MouseEvent.CLICK,carica);

possibile che non ci sia una funzione da richiamare da un'altro pulsante che scarichi il file appena caricato?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #3 (permalink)  
Old 17-12-07, 16:51
Member
 
Join Date: Oct 2007
Posts: 85
Rep Power: 2
cucamod is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

noto che con questo metodo non riesco a caricare correttamente un swf esterno ( si tratta di un player con 3 traccie esterne ad esso).
Carica si il player, ma la musica si sente strana..ripo rallentata ma con tanti echo..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #4 (permalink)  
Old 17-12-07, 22:43
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

In che modo riproduci la musica ? In streaming ?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #5 (permalink)  
Old 18-12-07, 11:34
Member
 
Join Date: Oct 2007
Posts: 85
Rep Power: 2
cucamod is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

preso dal tuo player:

public function initSound():void
{
_songIndex = 2;
songArray = new Array();
songArray[0] = "in.mp3";
songArray[1] = "in2.mp3";
songArray[2] = "in3.mp3";


_sound=new Sound(new URLRequest(songArray[_songIndex]));
_channel=_sound.play();
}
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Flash Multi Gallery
  #6 (permalink)  
Old 18-12-07, 14:33
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

Allora credo che il problema sia di connessione troppo lenta e non riesce a mandare in streaming un audio pulito.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #7 (permalink)  
Old 18-12-07, 14:39
Member
 
Join Date: Oct 2007
Posts: 85
Rep Power: 2
cucamod is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

l'ho provato in locale...
mm un altra ipotesi potrebbe essere :
stage.frameRate=62; ?

altrimenti dovrei caricare una traccia alla volta prima di essere eseguita giustO?se e si come?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #8 (permalink)  
Old 18-12-07, 14:47
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

In locale ti riproduce un file mp3 in streaming ?
Meglio se lo testi dal server...

62 è un framerate eccessiavamente alto.

Scusa, cosa intendi per una traccia alla volta ?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #9 (permalink)  
Old 18-12-07, 15:01
Member
 
Join Date: Oct 2007
Posts: 85
Rep Power: 2
cucamod is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

una alla volta nel senso ke... la prima viene caricata automaticamente (magari con un preload), quando si sceglie di andare avanti di traccia, carica la seconda e poi play.. mah forse è già troppo..infondo è un semplice player..con play stop pause prec e succ.

ho testato su un server e ha lo stesso problema... mmm senti tu stesso (ps non fare caso alla traccia è per prova :) )
http://www.vitodito/vtprova/vitodito1.html
ti spiego cosa ho fatto

ho importato

flash.display.loader
flash.net.URLRequest

poi aggiunto in una funzione

addEventListener(Event.ENTER_FRAME, loadplayer)

e poi la funzione loadplauer

p='mini_audio_player.swf';
var request:URLRequest= new URLRequest(p);
loader=new Loader();
loader.load(request);

non mida nessun errore (naturalmente è ancora la base ) non si vede nemmeno il player.. è solo per prova
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #10 (permalink)  
Old 18-12-07, 15:36
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Caricare un swf esterno con Flash CS3

Pazza !

Stai caricando mini_audio_player.swf con un Event.ENTER_FRAME... in pratica carichi lo stesso SWF 62 volte al secondo

Per caricare un SWF devi usare Event.COMPLETE,nomeFunzione

Così:

var request:URLRequest= new URLRequest(p);
loader=new Loader();
loader.loaderContentInfo.addEventListener(Event.CO MPLETE,finitoDiCaricare);
loader.load(request);

e poi:

function finitoDiCaricare(event:Event):void
{
addChild(loader);
}
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
Come caricare Illusion come SWF esterno? minipower AIUTO utilità free 2 28-10-08 17:33
Come caricare un file XML esterno con AS 3.0 Flep Articoli e tutorials 7 13-10-08 12:28
Flash CS3 Aprire un "popup flash" da un bottone e/o caricare un swf esterno leopardone Flash CS3 generale 0 26-06-08 13:35
caricare un swf esterno before Actionscript 3.0 base 1 22-01-08 06:27
Da Flash a un Div esterno Nexus Actionscript 3.0 base 4 03-12-07 17:25


All times are GMT. The time now is 12:19.


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