Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Trucco del giorno - Loader.content

This is a discussion on Trucco del giorno - Loader.content within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Salve a tutti ! Inizia da oggi una nuova categoria di articoli. Il tema è: ' Trucco del giorno ' . Sviluppando con Flash ed ...


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
  2 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 20-09-07, 14:09
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Trucco del giorno - Loader.content

Salve a tutti !
Inizia da oggi una nuova categoria di articoli.
Il tema è: ' Trucco del giorno ' .

Sviluppando con Flash ed Actionscript necessitiamo spesso di dover utilizzare dei piccoli trucchi che spesso non sono facili da individuare.
Ogni volta che mi imbatterò in questa situazione, scriverò un articolo.

Il primo articolo, come avrete capito leggendo il titolo, riguarda la classe Loader e la sua proprietà content.

Vediamo di cosa si tratta...

Faccio un esempio:
mettiamo caso che abbiamo un SWF da caricare che include un animazione su TimeLine.
Una volta caricato l' SWF completamente, mettiamo che ci serva interagire con la sua TimeLine.

D' istinto ci verrebbe da fare in questo modo:
nomeIstanzaLoader.content.play();

oppure

var clip:MovieClip=nomeIstanzaLoader.content;
clip.gotoAndPlay(5);

In entrambi i casi Flash ci darebbe un errore perchè il tipo di contenuto di Loader ( Loader.content ) non è riconosciuto da Flash in compile time.

A questo punto dobbiamo utilizzare un trucchetto:

creare una variabile di tipo ... definiamo ' universale ', aggiungendo un asterisco.
L' asterisco permette a quella variabile di accogliere qualsiasi tipo di dato.
var movie:*=nomeIstanzaLoader.content.
adesso creo un' altra variabile, stavolta tipizzata MovieClip a cui assegno il valore della variabile ' universale ' ( movie )
var clip:MovieClip=movie;
a questo punto Flash riconosce il contenuto di Loader come una MovieClip con la quale posso totalmente interagire.
clip.gotoAndPlay(5);


Alla prossima puntata !
__________________

 


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

  #2 (permalink)  
Old 26-09-07, 06:57
Junior Member
 
Join Date: Jul 2007
Posts: 2
Rep Power: 0
nablavector is on a distinguished road
ho trovato un trucchetto per fare la stessa cosa in maniera piu' veloce:

(nomeIstanzaLoader.content as MovieClip).play()
ciao a tutti
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #3 (permalink)  
Old 26-09-07, 07:01
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
eh sì, anche quello è un altro metodo.
__________________

 


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

  #4 (permalink)  
Old 18-06-08, 22:49
Member
 
Join Date: Mar 2008
Posts: 38
Rep Power: 0
kaos is on a distinguished road
Re: Trucco del giorno - Loader.content

Ragazzi buona sera a me non funziona però

package Classi{
import flash.display.*;
import flash.events.*;
import flash.net.*;

public class Prova extends MovieClip {
public var Car_Anim_Home:Loader = new Loader();
public var Cont_Anim_Home:MovieClip = new MovieClip();
public var Movie:* = Car_Anim_Home.content;
public var Clip:MovieClip = Movie;


public function Prova() {
trace("la classe OK");
addChild(Cont_Anim_Home);


var ID_Anim_Home:String="Anim_Home.swf";
var URL_Anim_Home:URLRequest=new URLRequest(ID_Anim_Home);
Car_Anim_Home.load(URL_Anim_Home);
Cont_Anim_Home.addChildAt(Car_Anim_Home,0);
Clip.gotoAndPlay(100);

}

}
}

Mi da questo errore
TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.
at Classi::Prova$iinit()
dove sbaglio e una settimana che cerco qulcosa del genere finalmente la trovo e non funziona
Aiutatemi
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #5 (permalink)  
Old 27-06-08, 18:40
Junior Member
 
Join Date: Dec 2007
Posts: 13
Rep Power: 0
neeohak is on a distinguished road
Re: Trucco del giorno - Loader.content

Si, anche io, ho provato in tutti i modi possibili ed immaginabili, sempre lo stesso errore !!!!
AAAAAIIIIIIIIIUUUUUUUUUUTTTTTTTTTOOOOOOOOOOOOOOO

Ho appena scoperto che se faccio un trace di loader.content, mi dice correttamente il nome dell'istanza dell'swf che viene caricato...
il problema è che quando gli dico as Movieclip... l'ogetto diventa null !!!!!!!!!!!

NULLLLL !!!! Ma perchè !!!????!?!??!??

Last edited by neeohak; 27-06-08 at 18:44..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Flash Multi Gallery
  #6 (permalink)  
Old 28-06-08, 18:51
Junior Member
 
Join Date: Dec 2007
Posts: 13
Rep Power: 0
neeohak is on a distinguished road
Re: Trucco del giorno - Loader.content

Ti posto il codice che c'è....


// GESTIONE MENU E SEZIONI ----------------------------------------

mc_menu.addEventListener(Event.CHANGE, changeSWF);
mc_menu.dropdownWidth = 150;
mc_menu.width = 150;

var loaderanimazione:Loader=new Loader; // crea il loader del filmato flash esterno


// posiziona l'swf nello stage
loaderanimazione.x=stage.stageWidth/2+10;
loaderanimazione.y=50;

// ridimensiona l'swf nello stage
loaderanimazione.scaleY=0.9;
loaderanimazione.scaleX=0.9;

addChild(loaderanimazione);

loaderanimazione.visible=false;

// funzione del menu a tendina
function changeSWF(event:Event):void{

var url:String=mc_menu.selectedItem.data+'.swf';
var request:URLRequest=new URLRequest(url);

loaderanimazione.visible = true;
nome_funzione=mc_menu.selectedItem.data+".txt";

h=0;i=0;
gotoAndPlay(2);

loaderanimazione.load(request);

}


ora... il loaderanimazione ho provato a farlo diventare movieclip per gestire il play e lo stop dell'animazione che carica... ma nn mi funziona perchè se faccio trace(loaderanimazione.content); mi da [object AVM1Movie] solo come informazione ogni volta che ci passa sopra con il tempo, e finqui tutto ok...
quello che nn funziona è il casting per mettere l'object come movieclip all'interno dello stage... e per gestire i relativi metodi.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #7 (permalink)  
Old 29-06-08, 07:50
Member
 
Join Date: Mar 2008
Posts: 38
Rep Power: 0
kaos is on a distinguished road
Cool Re: Trucco del giorno - Loader.content

Allora ragazzi io ho risolto cosi'.
Ho creato un contenitore principale di oggetti di nome Contenitore_principale,
mi serviva controllare solo il 2 livello getChildAt(1) ,
che veniva riempito con un oggetto Loader.

var filmato_corrente=Contenitore_principale.getChildAt (1);
var Controllo:* =filmato_corrente.content;
var Clip:MovieClip=Controllo;
Clip.play();
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #8 (permalink)  
Old 29-06-08, 16:24
Junior Member
 
Join Date: Dec 2007
Posts: 13
Rep Power: 0
neeohak is on a distinguished road
Re: Trucco del giorno - Loader.content

scusami, ma solo con as MovieClip mi funziona... solo che quando eseguo il trace di mc_animazione mi da null... e se ci metto mc_animazione.stop(); mi dice che nn può essere eseguito il metodo su un oggetto null !!!!


var filmato_corrente=this.getChildAt(1);
var controllo:* =loaderanimazione.content;
var mc_animazione:MovieClip=controllo as MovieClip;
trace(controllo);
trace(mc_animazione);


Quote:
Originally Posted by kaos View Post
Allora ragazzi io ho risolto cosi'.
Ho creato un contenitore principale di oggetti di nome Contenitore_principale,
mi serviva controllare solo il 2 livello getChildAt(1) ,
che veniva riempito con un oggetto Loader.

var filmato_corrente=Contenitore_principale.getChildAt (1);
var Controllo:* =filmato_corrente.content;
var Clip:MovieClip=Controllo;
Clip.play();
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
this.root - trucco del giorno Flep Articoli e tutorials 8 10-10-08 16:43
Trucco del giorno - MovieClip.dropTarget Flep Articoli e tutorials 3 04-09-08 10:37
Trucco del giorno - DisplayObjectContainer.removeChildAt Flep Articoli e tutorials 1 08-06-08 17:43
mouseEnabled di Flash CS3 - trucco del giorno Flep Articoli e tutorials 2 16-01-08 07:30
Trucco del giorno - MovieClip.mouseChildren Flep Articoli e tutorials 0 21-09-07 10:46


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


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