Flash Components

HOME arrow TUTORIALS arrow Trucco del giorno arrow Trucco del giorno - MovieClip.mouseChildren
Trucco del giorno - MovieClip.mouseChildren Stampa E-mail
Scritto da Flep   
Wednesday 22 August 2007

Eccoci al trucco del giorno.
Dopo aver visto la differenza tra target e currentTarget , dopo aver analizzato la proprietà droptarget , oggi analizziamo la proproietà mouseChildren della clase DisplayObjectContainer.
Qusta proprietà posiamo utilizzarla con MovieClip, Sprite, Loader e Stage.
Perchè ? Perchè la classe DisplayObjectContainer è superClass di Loader, Sprite e Stage , quindi significa che le 3 classi citate erditano metodi e proprietà da DisplayObjectContainer. La MovieClip a sua volta invece è subclass della Sprite, quindi eredita i suoi metodi.

Perchè parlare di mouseChildren?
Semplice: può risolvervi un bel problema.
Mettiamo caso che abbiamo una MovieClip con all' interno diversi oggetti ( esempio un campo di testo ) e che vogliamo fare interagire il Mouse con questa MovieClip.
Aggiungiamo i listeners necessari in ascolto e quando proviamo notiamo che il mouse sopra alla MovieClip non diventa ' manina '. Allora andiamo a leggere che esiste una propretà chiamata buttonMode che abiliterà il mouse a diventare ' manina ' ogni qualvolta sarà sopra la MovieClip. ma non è ancora finita perchè se provassimo in questo momento avremmo un pccolo problema e cioè che il mouse diventa ' manina ' solo se non sta sopra al campo di testo inserito nella MovieClip.

Ecco che bisogna intervenire con la proprietà mouseChildren, in questo modo... 

Leggi tutto

Trackback(0)
Commenti (9)Add Comment
...
scritto da Damiano, August 23, 2007
Come sempre un ottimo articolo, ma ho notato che nell'ultimo esempio c'è un fastidiosissimo flickering del cursore, che continua a "lampeggiare" con la manina e la classica freccia.
E' caratteristico del programma o c'è qualcosa che si può fare per sviare al problema?

ps: Grazie per le innumerevoli risorse su CS3, continua così smilies/smiley.gif
...
scritto da FlepStudio, August 23, 2007
Ciao, a me non capita il flickering... su che browser ti succede ?
...
scritto da Andre, August 23, 2007
ciao flep...stavo provando a fare una classe, associata ad un movieclip in libreria, che generalizzasse il richiamo di una funzione all'evento MOUSE_OVER (ed espandibile ad altri eventi mouse)... ma ho riscontrato qualche difficoltà...
ti riporto qui le linee di codice base sperando tu possa aiutarmi...

package
{
import flash.display.MovieClip;
import flash.events.*;

public class clipButton extends MovieClip
{
public function clipButton()
{
this.buttonMode=true;
this.mouseChildren=false;
this.addEventListener(MouseEvent.MOUSE_OVER,go);
}

public function go(evt:MouseEvent):void
{
trace("funziona!");
}
}
}

Utilizzo poi la classe nel seguente modo
var myClip:clipButton = new clipButton();
myRoot.addChild(myClip); //Dove myRoot corrisponde ad un riferimento MovieClip nel quale intendo visualizzare il clip in libreria associato alla classe.

Il tutto però mi genera un errore del tipo: Error #1034: Assegnazione di tipo forzata non riuscita: impossibile convertire clipButton$ in flash.display.DisplayObject.
Mi chiedo quale possa essere il problema..
smilies/sad.gif
...
scritto da FlepStudio, August 23, 2007
Ciao ANDRE, ti invito a scrivere sul forum perchè il codice nella sezione commenti si vede troppo male.

Comunque, da come mi hai spiegato è tutto corretto.
Controlla che il nome della Classe associata alla movieClip in libreria sia uguale.

La cosa che mi viene da pensare in questo momento è na sola:
che al momento in cui dici:
myRoot.addChild(myClip);
sembra che myRoot non sia ancora creata o che non esista.

Bisognerebbe guardare anche la classe in cui istanzi clipButton, ma non quì ti prego, vieni sul forum o a scrivere codice quì diventiamo orbi tutti e 2 smilies/tongue.gif
...
scritto da Andre, August 23, 2007
la cosa che mi fa perdere la ragione è questa.. tutto sembra corretto.. ho ricontrollato l'associazione del movieclip alla classe.. ed è corretta pure quella... ho fatto pure un trace alla root ed è istanziata correttamente(anche perchè con la stessa rotto creo altri oggetti e funzionano smilies/tongue.gif)... vediamo un po' come posso sistemare senza disturbarti nuovamente.. se non riesco c risentiamo sul forum... e grazie ancora... smilies/wink.gif
...
scritto da FlepStudio, August 23, 2007
prima di scrivere myRoot.addChild...
fai un trace(my_Root) e uno trace(ClipButon) e vedi cosa ti dice.

Prova anche a togliere i this di riferimento dall'interno di ClipButton.as
...
scritto da Andre, August 23, 2007
togliendo i riferimenti "this" mi funziona.... e funziona anche se metto un riferimento a "super".. cmq per togliere eventuali dubbi...ho lasciato tutto senza riferimenti..smilies/cheesy.gif smilies/tongue.gif grazie ancora.. alla prossima...smilies/wink.gif
...
scritto da Damiano, August 24, 2007
Ora si vede correttamente senza flickering...
Comunque uso Safari su Mac smilies/wink.gif
...
scritto da FlepStudio, August 24, 2007
Anche io sono su MAC ed ho notato che Safari ha qualche problema...
Utilizzo FireFox e va perfettamente smilies/smiley.gif

Scrivi commento
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
smaller | bigger

busy
Ultimo aggiornamento ( Friday 21 September 2007 )
< Prec.   Pros. >

Corso Flash CS3

Flashmint flash templates

FlippingBook page flip engine - flash books for web designers

Flash Media Server Hosting

Professional Flash Components

FlashDen stock

Flash Animation

Flash Components

Big Stock Flash | Buy and Sell Royalty-Free Flash effects music and video files

Flash Components

Flash Components

Flash Components

Buy Sell Flash files

Flash Components

hire a Flash professional

Flash audio