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

    Problemi con un ciclo FOR e addEventListener(Event.ENTER_FRAME) . . .

    ciao ragazzi nuovo problemino .
    idee? suggerimenti? soluzioni alternative?
    Vi prego se potete dedicate un po di tempo sono in crisi devo consegnare un lavoro domani e sono a corto di risorse... Il codice sorgente a chi riesce ad aiutarmi entro stasera!

    Grazie!

    Vi espongo prima il codice poi il problema:


    Codice PHP:
    var grid:Array = new Array();
    var 
    pezzi:Array = new Array();

    function 
    costruisciPezzi (myArray:Array, posCasuale:Boolean) {
          
    //codice irrilevante per il problema
    }

    costruisciPezzi(gridfalse); 
    //la funzione popola l'array "grid" e se il parametro "posCasuale" == false li ordina come il puzzle deve essere costruito (serve da guida e da anteprima su dove posizionare i pezzi random creati in seguito)

    costruisciPezzi(pezzitrue); 
    //la funzione popola l'array "pezzi" ed essendo il parametro "posCasuale" == a true i pezzi vengono ordinati casualmente su una parte dello stage

    //aggiunge l'interattività ai pezzi da ordinare
    for (var i:Number=0i<nTotalei++) { //nTotale è il nr totale di pezzi del puzzle
        //abilita la modalità pulsante ;
        
    pezzi[allP].buttonMode true;
        
    //drag/drop
        
    piece[i].addEventListener(MouseEvent.MOUSE_DOWNdrag);
        
    piece[i].addEventListener(MouseEvent.MOUSE_UPdrop);

        function 
    drag(dragEvent:MouseEvent):void {
            
    dragEvent.currentTarget.startDrag(true);    
        }
        
        function 
    drop(dropEvent:MouseEvent):void {
            
    dropEvent.currentTarget.stopDrag();
            
            
    stage.addEventListener(Event.ENTER_FRAMEonenterframe);
            function 
    onenterframe(event:Event):void {
                for (var 
    j:Number=0nTotalej++) {
                    if (
    piece[j].hitTestObject(anteprima[xd])==true) {
                        
    piece[j].anteprima[j].x;
                        
    piece[j].anteprima[j].y;
                        
    piece.removeEventListener(Event.ENTER_FRAMEonenterframe);
                        
    trace("success!");
                    } else  {
                        
    trace("fail!");
                        
    stage.removeEventListener(Event.ENTER_FRAMEonenterframe);                    
                        
    piece[j].= (680 Math.random()*270);
                        
    piece[j].= (80 Math.random()*480);
                    }
                }
            }
            
            

        }

    In poche parole voglio che quando trascino un determinato pezzo sulla grid dell'anteprima ed una volta rilasciato il pulsante del mouse il "hitTestObject" diventa "true" in collisione con il pezzo giusto, il pezzo che ho trascinato eredita le posizioni x/y dell'oggetto "hitTestObject" (e fin qui ci siamo... tutto regolare)... e invece al rilascio del mouse se il pezzo preso non è in collisione con il pezzo giusto venga riposizionato casualmente tra gli altri.

    Il problema: impostando il codice come ho fatto il loop FOR mi riordina ogni volta tutti i pezzi da posizionare ancora (se hitTestObject risulta false), visto anche il fatto che il listener dello stage ENTER_FRAME esegue la funzione drop e tutto ciò che sta all'interno "j" volte...

    Ho provato senza l'EventListener dello stage ma così facendo non mi viene più eseguito il controllo dell'hitTestObject (se è true o false) per ogni pezzo.

    Mi vengono i capelli bianchi!

    Spero in che uno di voi riesca ad aiutarmi.
    Se sono stato poco chiaro o confusionario e devo puntualizzare o rispiegare alcune cose gradirei se mi contattereste per messenger o skype per velocizzare il procedimento di scambio informazioni:

    WindowsLiveMessenger: rart.bb.restricted-zone@hotmail.it
    YahooMessenger: rartdesign@yahoo.it
    Skyper: rartdesign@yahoo.it

    Il link del flash così potete valutare i problemi:
    http://www.rartdesign.altervista.org/puzzle

    Ciao e grazie!
    Bill Gates disse "Bug". E windows fu.

  2. #2
    Problema risolto grazie a Whisher che mi ha contattato per Skype !!!
    Grazie!
    Bill Gates disse "Bug". E windows fu.

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.