Visualizzazione dei risultati da 1 a 10 su 10

Discussione: cursore hit test

  1. #1
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208

    cursore hit test

    Ciao a tutti,
    che qualcuno sappia, è possibile utilizzare il cursore tipico del rollover (la manina) con un hitTest?

    Un saluto
    Zona - alias Danesi

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    La manina appare sui movieclip quando gli si assegna un evento legato al mouse, anche se è vuoto. Ma non ho compreso appieno il tuo caso, c'è un codice particolare?

  3. #3
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208
    No... Il codice è uno standard

    codice:
    if(hit_zone.hitTest(_root._xmouse, _root._ymouse, true)) 
    	{
    		end_point = _xmouse;
    	}
    vorrei solamente che il passaggio del mouse sulla zona hit_zone smebrasse all'utente un banale rollOver.
    Zona - alias Danesi

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non avendo abbastanza informazioni sulla cosa, ti chiedo: perchè allora non fai direttamente un semplice rollover?

  5. #5
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208
    Devo caricare uno slider con le icone di preview di un photo gallery da file XML.

    Il numero delle immagini è a priori ignoto.

    Pertanto carico un tot di volte un contenitore "vuoto" presente nella libreria (contiene solo un piccolo loader) e ci carico sopra le immagini:

    codice:
    for(var s=1; s < (_root.numero_immagini_tipo1); s++)
    	{
    		_level0.tipo1.contenitore_th.attachMovie("tipo1_th_mc", "tipo1_th_" + s, 600 + s);
    		var immagi = _root.cartella + "/th/"+ itempArray[_root._posizione_assoluta].childNodes[_root.sub_link_to_open].childNodes[s].attributes.immagine;
    		_level0.tipo1.contenitore_th["tipo1_th_" + s].loadMovie(_root.cartella + "/th/"+ itempArray[_root._posizione_assoluta].childNodes[_root.sub_link_to_open].childNodes[s].attributes.immagine);
    		_level0.tipo1.contenitore_th["tipo1_th_" + s]._x = -140 + 140 * s;
    		_level0.tipo1.contenitore_th["tipo1_th_" + s]._y = 0;
    		_level0.tipo1.contenitore_th["tipo1_th_" + s]._alpha = 70;
    		//_level0.tipo1.contenitore_th["tipo1_th_" + s].onRollOver = th_rollover;
    	}
    Il problema è che ovviamente il comando onRollOver commentato non funziona (non c'è alcun controllo sullo stato di caricamento delle icone) e quindi ho usato un comando mediante hitTest che funziona:

    codice:
    onMouseDown = function()
    {
    	for( i = 1; i < _root.numero_immagini_tipo1; i ++)
    	{
    		if (_level0.tipo1.contenitore_th["tipo1_th_" + i].hitTest(_root._xmouse, _root._ymouse, true)) 
    		{
    			trace("premuto = " + i);		
    		}			
    	}	
    }
    Un saluto
    Zona - alias Danesi

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ok, allora prova a impostargli la proprietà useHandCursor=true, anche se non sono sicuro che possa funzionare se prima non viene verificato il caricamento.
    Mal che vada ti basta nidificare un ulteriore clip vuoto dentro a quello che già hai, e assegnare a quest'ultimo il caricamento, mentre al clip vuoto principale metti le azioni onRollOver che ti interessano.

  7. #7
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208
    Purtroppo useHandCursor=true non funziona.

    Provo ad usare un oggetto vuoto.

    Esiste il modo di caricare una serie di icone da xml utilizzando un ciclo for e riuscendo ad assegnare a ciscun oggetto un listener per poter controllare che, ad esempio siano state caricate tutte le icone) e poi assegnare loro un comando di rollOver che tenga conto di quale icona sia sotto il mouse?

    Un saluto
    Zona - alias Danesi

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se vuoi provarla, ho scritto una piccola classe "LoaderManager" che gestisce i caricamenti multipli e che può aiutarti, anche se banalmente ti basta un singolo moviecliploader per gestire il caricamento di più file esterni.
    In caso, la classe la trovi in questo post.

  9. #9
    Utente di HTML.it L'avatar di danesi
    Registrato dal
    May 2007
    Messaggi
    208
    Non vorrei andare fuori tema rispetto l'oggetto, ma in che senso è sufficiente un singolo mcloader.

    Ho provato caricale un file per volta, utilizzando un singolo loader (assegnato sequenzialmente ai vari file) ma risulta lento ripetto alla soluzione di creare un loader (con rispettivo listener) per ogni file.

    Il problema è che all'interno di un ciclo for in cui vengono creati gli oggetti e i vari loader e listener il comando onLoadComplete non funziona.
    Zona - alias Danesi

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Salvo che non lo sovrascrivi ad ogni ciclo, il loader deve funzionare con le azioni corrette che gli assegni, un esempio banale può essere:

    Codice PHP:
    var loader:Object = new MovieClipLoader();
    loader.onLoadStart = function (t:MovieClip) {
        
    trace ("Il caricamento è partito sul clip "+t;
    }
    loader.onLoadProgress = function (t:MovieClipbl:Numberbt:Number) {
        
    trace ("Caricati "+bl+" di "+bt+" totali, pari al "+(Math.floor((bl/bt)*100))+"% sul clip "+t);
    }
    loader.onLoadComplete = function (t:MovieClip) {
        
    trace ("Il caricamento è stato completato sul clip "+t;
    }
    loader.onLoadInit = function (t:MovieClip) {
        
    trace ("Il file esterno è inizializzato e pronto sul clip "+t);
    }
    loader.onLoadError = function (t:MovieClipe:String) {
        
    trace ("Caricamento fallito sul clip "+t+". Errore: "+e);
    }
    for (var 
    i:Number=0i<10i++) {
        var 
    img "img/"+i+".jpg";
        var 
    mc:MovieClip this.createEmptyMovieClip("canvas"this.getNextHighestDepth());
        
    loader.loadClip(imgmc)

    Se confronti i trace, vedrai che tutti i caricamenti compiono le stesse azioni, ma su istanze separate, senza intrecciarsi e senza che qualcosa non venga eseguita.

    In ogni caso, analizzando il tuo codice, penso che sia meglio che utilizzi un mc vuoto nidificato, come ti suggerivo qualche post indietro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.