Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema con "hitTest": dove metterlo?

    Salve a tutti, ho da poco cominciato a smanettare con gli action script e probabilmente mi sono lanciato in un progetto più grande di me..

    Comunque sia ho riscontrato un problema con il comando hitTest, in poche parole ho 2 mc, il primo fisso, mentre l'altro si può muovere con dei comandi, e quando per caso il secondo mc va a sbattere contro il primo questo deve fermarsi.

    Ora come ora ho inserito questo codice:
    codice:
    if(_root.clipUno.hitTest(_root.clipDue)){
    //azioni varie
    }
    all'interno del maiframe all'interno di _root.onEnterFrame = function() {}.

    Fin qui tutto bene, nessun problema funziona tutto regolarmente..

    Il mio problema nasce, però dal fatto che di questi "clipUno" ne posso generare N in maniera dinamica.. e quindi non so più dove e che codice usare..

    Avevo pensato di inserire in ogni mc il controllo e non nel mainframe, però non riesco a far funzionare nulla

    Qualcuno di voi mi sa aiutare?

  2. #2
    qualcuno mi corregga se sbaglio!

    creado basti mettere la variabile al posto del nome istanza:
    codice:
    if(_root["clipUno"+i].hitTest(_root.clipDue)){
    //azioni varie
    }
    Questo perchè suppongo che il duplicate tu lo faccia così:
    codice:
    _root.clipUno0.duplicateMovieClip("clipUno"+i, livello++);

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    Re: Problema con "hitTest": dove metterlo?

    Originariamente inviato da shake84
    Il mio problema nasce, però dal fatto che di questi "clipUno" ne posso generare N in maniera dinamica.. e quindi non so più dove e che codice usare..

    Avevo pensato di inserire in ogni mc il controllo e non nel mainframe, però non riesco a far funzionare nulla

    Qualcuno di voi mi sa aiutare?
    codice di creazione dei clip?

    ps. io eviterei l'enterFrame in questo caso e userei un listener per la gestione del mouse
    codice:
    var mouseListener = new Object();
    mouseListener.onMouseMove = function(){
    	if(_root.clipUno.hitTest(_root.clipDue)){
    		//azioni varie
    	}
    }
    Mouse.addListener(mouseListener);

  4. #4
    Per la creazione dei clip avevo pensato di usare:

    myMovieClip.attachMovie( nomeId, nuovoNome, profondità [, initObject] )

    Premetto che non l'ho ancora provato, tuttavia avevo visto in un esempio simile a quello che voglio fare, che veniva usato tale comando..

    Per la parte di sincronizzare avevo usato enterFrame e non mouseListener poichè il controllo non viene effettuato sul mouse, bensì sul clip,

    Es.

    Clicco in un punto con il mouse, il clip2 comincia a muoversi lentamente verso la zona in cui ho cliccato con il mouse, se per caso nel tragitto colpisce il clip1 allora si ferma


    PS. nel comando attachMovie ho trovato questa descrizione per un parametro:

    initObject Oggetto contenente proprietà da destinare al nuovo clip filmato associato. Questo parametro consente ai clip filmato creati dinamicamente di ricevere parametri a cui essere associati. Se initObject non è un oggetto, esso viene ignorato. Tutte le proprietà di initObject vengono copiate nella nuova istanza. Le proprietà specificate tramite initObject sono disponibili per la funzione di costruzione. Questo parametro è opzionale.

    Solo che non mi è chiaro cosa voglia dire .. in pratica posso decidere dinamicamente se trasformare un clip in pulsante e/o assegnarli dei comandi?

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    attachMovie consente di attaccare un clip da libreria, il "prefisso" davanti al comando indica dove attaccarlo (dentro quale clip), per duplicare invece un clip già presente sullo stage ti serve il "duplicateMovieClip"

    Per la parte di sincronizzare avevo usato enterFrame e non mouseListener poichè il controllo non viene effettuato sul mouse, bensì sul clip,

    Es.

    Clicco in un punto con il mouse, il clip2 comincia a muoversi lentamente verso la zona in cui ho cliccato con il mouse, se per caso nel tragitto colpisce il clip1 allora si ferma
    opinabile, preferisco avere maggior controllo sui consumi della cpu e la sintassi con il solo enterFrame non lo permette secondo me

    ...initObject ...
    non l'ho mai usato, perchè dò le opzioni di solito dopo aver attaccato, ma la spiegazione dovrebbe essere in questo esempio
    codice:
    this.attachMovie("circle", "circle2_mc", this.getNextHighestDepth(), {_x:100, _y:100});
    la parte in rosso si dovrebbe poter scrivere anche come
    codice:
    var myObject = new Object();
    myObject.coord = {_x:100, _y:100};
    e quindi
    codice:
    this.attachMovie("circle", "circle2_mc", this.getNextHighestDepth(), myObject.coord);
    come già detto, è solo un'ipotesi visto che non l'ho mai usato

  6. #6
    attachMovie consente di attaccare un clip da libreria, il "prefisso" davanti al comando indica dove attaccarlo (dentro quale clip), per duplicare invece un clip già presente sullo stage ti serve il "duplicateMovieClip"
    Ottimo allora allora attachMovie è proprio quello che fa al caso mio

    opinabile, preferisco avere maggior controllo sui consumi della cpu e la sintassi con il solo enterFrame non lo permette secondo me
    In effetti sarebbe preferibile anche per me non consumare troppa cpu, proverò a vedere se il metodo che mi hai suggerito fa al caso mio..
    Più che altro si Action Script non ne so ancora molto, spero di migliorare con il tempo

  7. #7
    Eccomi qui ad aggiungere una domanda..

    Se ho 2 filmati che si muovono per conto loro, indipendentemente da quello che può fare l'utente..

    Se devo verificare ad esempio hitTest, su che evento è meglio sincronizzare l'evento, soprattutto per non sovraccaricare la CPU?

    Diciamo che non sono per nulla esperto, io pensavo onEnterFrame, and80 prima ha parlato mouseListener, però se in quest'altro caso l'evento non centra con il mouse come posso fare?

    L'unica cosa è che i movimenti vengono effettuati dopo aver caricato dei dati da un file xml.

    Ps. il movimento di ciascun clip può durare più secondi quindi se faccio un controllo solo quando vengono caricati i file non risolverei nulla

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    beh, in questo caso l'enterFrame và più che bene, ovviamente appena il movimento finisce però questo evento và bloccato con un bel delete nomeclip.onEnterFrame;

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.