Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 33
  1. #11
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    69
    allora, ho fatto diverse prove, ma il drag non avviene
    in pratica ho creato un clip, con dentro un bottone, e devo spostare da questo oggetto, diversi duplicati di questi nell'area che ha nome istanza: _root.endAreaDrag

    codice:
    on (press) {
    
    // incremento la variabile counter	
    set (_root.counter++, "");
    // duplico il mio clip 
    duplicateMovieClip ("_root.instanceDragClipAuto", "_root.instanceOfAutoNum"+_root.counter, _root.counter);
    
    //qui se decommento _root.ins... e commento startDr.... la duplicazione avviene però ci sono dei problemi di release, suppongo perchè non è gestito il release per i duplicati...
    	//_root.instanceDragClipAuto.startDrag(true);
    	startDrag("_root.instanceOfAutoNum"+_root.counter, true, -500, -500, 600, 600);
    
    }
    on (release) {
    	_root.instanceDragClipAuto.stopDrag();
    	if (eval(_root.instanceDragClipAuto._droptarget) == _root.endAreaDrag) {
    		_root.car01.play();
    
    //dovrei inserire qui il removeMovieClip(""); 
    
    	} else {
    		setProperty("_root.instanceDragClipAuto", _x, "456.0");
    		setProperty("_root.instanceDragClipAuto", _y, "159.0");
    		//_root.car01.gotoAndStop(1);
    		
    	}
    }
    mi sorge anche un altro problema però, quando chiamo il removeMovieClip(""); come faccio a conoscere il corretto indice dell'oggetto da rimuovere, visto che ci possono essere piu' duplicati dello stesso oggetto? E dove devo gestire i release dei duplicati creati?
    (se vuoi dare un occhiata a quello che ha prodotto la mia mente malata il file che ho creato è questo: http://czar82.altervista.org/xivan.fla ).

    ps: per rendere invisibile un oggetto, devo creare un suo frame vuoto? No vero? basta che metto in un frame iniziale ad esempio, il codice: _root.instanceDragClipAuto.visible=false;
    giusto?

  2. #12
    Utente bannato
    Registrato dal
    Jan 2009
    Messaggi
    713

    stai attento !!!

    _root.instanceDragClipAuto.visible=false;
    _root.instanceDragClipAuto._visible=false;

    non c'è bisogno di creare un frame vuoto.

    mentre il removeMovieClip
    removeMovieClip(_root.clipdarimuovere);



    esempio:
    crea un clip sullo stage e dai il nome istanza: ddd
    crea 2 pulsanti

    in uno metti questo:

    on (press) {
    ddd.duplicateMovieClip("ddd2",1);
    ddd2._x=10;
    ddd2._y=10;

    }


    nell'altro metti quest'altro:

    on (press) {
    removeMovieClip(_root.ddd2);
    }

  3. #13
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    69
    Se c'è solo un duplicato in teoria è semplice, perchè so il nome dell'unico duplicato esistente, ma se questi duplicati vengono creati in continuazione, con indici crescenti, come ho scritto nel codice sopra, come faccio a identificare il duplicato corretto da distruggere?
    Posso aiutarmi solo facendo riferimento all'indice?

    Ad esempio ho scovato questo tutorial: http://www.layoutgalaxy.com/html/htm...er47-page1.htm dove ci sono tanti duplicati dei palloncini, e lui spara ai palloncini, e il duplicato corretto viene distrutto, apparentemente senza servirsi di indici...
    ps: ma c'è un modo per accedere velocemente a tutto il codice dei vari elementi del filmato flash? Ad esempio in questo tutorial prima di beccare dove stava nascosto il codice ho fatto una gran fatica...


    comunque devo ringraziarti ancora, ad inizio post no ne sapevo proprio nulla, mentre ora qualcosina la inizio a capire

  4. #14
    Utente bannato
    Registrato dal
    Jan 2009
    Messaggi
    713

    dunque indovinare il nome del clip duplicato

    ci vuole Mandrake o qualke mago hai presente quelli che guardano dentro la palla di cristallo?
    quando duplichi un oggetto... quell'oggetto è la copia esatta dell'originale...

    ho visto l'esempio che hai linkato dei palloncini...
    se tu dovresti fare un gioco uguale a questo se mai ti serve un altro tipo di codice
    cioè che qualsiasi palloncino tu spari esso si distrugge

    quindi su 100 palloncini
    qualsiasi palloncino colpisci esso si distrugge

    e quindi hai bisogno un codi tipo questo:

    for (i=1; i<=100; i++) {
    if (_root.proiettile.hitTest(_root.maze["palloncino"+i])) {
    boom...
    ecc...


    quindi prima un codice nel fotogramma per copiare i palloncini
    e poi un codice nel pulsante che distrugge qualsiasi palloncini ti capiti
    da 1 a 100

    non so se mi sono spiegato...
    se il mio esempio ti va bene
    più tardi ti faccio un esempio


    au revoir
    ____________
    by max

  5. #15
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    69
    in pratica devo fare una cosa diciamo simile, non so se hai visto il file che avevo allegato, comunque ci sono 4 strade, in cui faccio il drag&drop di delle macchinine, fatto ciò parte l'animazione di una macchinina che cammina, infine tutte escono da una quinta via.
    La duplicazione serve in quanto posso mettere in successione due macchinine nella stessa strada.
    Il problema che ti ho già posto, e che per due clip sono riuscito a risolvere, è che mettendo queste macchinine in strade diverse, queste possono collidere e devo dare il gameOver. Il nuovo problema sorge perche ora a collidere sono i duplicati, quindi in teoria, con la soluzione che mi hai suggerito, se ad esempio ho creato N duplicati, dovrei fare un check di ogni duplicato attivo con tutti i duplicati creati fino a quel momento (magari facendo attenzione ai duplicati che già o rimosso, o per non complicare troppo il codice me ne frego e basta, tanto se se ne creano un centinaio è assai... ).
    E qui la mia domanda da niubbo sorge, dove lo vado a mettere sto codice per il controllo della collisione? metto il for dentro la clip da cui sono stati generati questi duplicati?

  6. #16
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    69
    che poi, altra domanda precedente, perchè non mi va il drag con: startDrag("_root.instanceOfAutoNum"+_root.counter, true, -500, -500, 600, 600);
    ?

    e come richiamo stopDrag() se non ammette parametri? soprattutto se si parla di duplicati? ovviamente scrivo una boiata con:
    ("_root.instanceOfAutoNum"+_root.counter).stopDrag ();

  7. #17
    Utente bannato
    Registrato dal
    Jan 2009
    Messaggi
    713

    dunque dunque...

    perchè non ti funziona lo start drag non è ho idea
    ma tu usi un codice un po "anglosassone" ih ih ih
    cioè scusa il termine ma non so dove lo vai a pescare
    tra mezzora ti farò un esempio di collisione con più oggetti

    il codice che ti darò per la collisione lo metterai dentro un clip
    il codice riguarda la collisione con più oggetti poi vedi tu
    di adattarlo in base alla tua situazione


    a tra poco...

  8. #18
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    69
    mi accorgo anch'io che con actionscript programmo in un modo veramente barbaro
    anzi se hai qualche suggerimento, sono ben accetti, mi scuso fin da ora anzi, per le mancate indentazioni che ti ho fatto sopportare ^^'

    ah comunque forse ho risolto il problema del drag dei duplicati!
    sto iniziando a capire!!!!!!!
    ho capito le potenzialità del this, per la gestione dei duplicati, sono a cavallo!

  9. #19
    Utente bannato
    Registrato dal
    Jan 2009
    Messaggi
    713

    molto bene

    scusa il ritardo ma ho avuto tanti piccolo problemi
    incompatibilità di un ciclo con un altro script

    comunque

    crea un clip rosso che ha nome istanza: "clip" poi

    in un clip senza nome di colore blu metti alcune istruzioni per duplicare il "clip rosso"



    nel clip senza nome blu (questo crea 3 oggetti duplicati nello stage)
    codice:
    onClipEvent (load) {
    	for(i:Number=0;i<10;i++){
    duplicateMovieClip("_root.clip","clip"+i , i)
    _root.clip1._x=10; _root.clip1._y=10;
    _root.clip2._x=100; _root.clip2._y=100;
    _root.clip3._x=200; _root.clip3._y=200;
    
    //ecc...
    }
    }
    dopo di che crea un clip di colore verde (quello che si muove con starDrag)
    metti quest'altro codice:
    codice:
    onClipEvent (enterFrame) {
    	for (i=1; i<=4; i++) {
    	if(this.hitTest(_root["clip"+i])){
    		removeMovieClip(_root["clip"+i]);}
    	
    }}
    
    
    on (press) {
    
    	//Start Dragging Movieclip Behavior
    	startDrag(this);
    	//End Behavior
    
    }
    on (release) {
    
    	//Stop Dragging Movieclip Behavior
    	stopDrag();
    	//End Behavior
    	
    }
    spero di non aver dimenticato niente..


    qui l'esempio:
    ciclo-crea-e-distruggi-stardrag-multiplo.htm

    mentre quest'altro puoi trascinare i vari clip
    http://max400scuola.altervista.org/a...g-multiplo.htm

  10. #20
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    69
    perfetto! gentilissimo!
    quindi se ad esempio voglio settare la posizione del generico duplicato i-esimo basta fare:
    _root["clip"+i]._x = 12;
    _root["clip"+i]._y = 12;

    adesso tutto mi torna!!!

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.