• Super User

    Ci potrebbero essere diversi modi.
    Quello che mi viene in mente adesso è fai entrare la tua linea con un fade In di alpha.
    In più se utilizzi un movimento inerziale la cosa diventa professional 😉
    Movimento inerziale:
    esempio di una clip che si sposta da _x 0 a _x 400 con un fadeIn di alpha

    
    my_clip._alpha=0;
    my_clip.onEnterFrame=function():Void
    {
    	this._x+=(400-this._x)/10;
    	this._alpha+=2;
    	if(this._x>=399)
    	{
    		this._x=400;
    		this.onEnterFrame=null;
    	}
    }
    
    

  • User Attivo

    eheh tanto per cambiare non mi è chiarissimo..
    dunque creo una linea che si sposta le do un nome e le assegno quel codice?
    o quel codice lo assegno allo stage?

    grazie della disponibilità :ciauz:


  • User Attivo

    eheh tanto per cambiare non mi è chiarissimo..
    dunque creo una linea che si sposta le do un nome e le assegno quel codice?
    o quel codice lo assegno allo stage?

    grazie della disponibilità :ciauz:


  • Super User

    crea una movieclip con qualsiasi forma.
    La metti sullo stage e gli dai il nome my_clip
    Seleziona il primo e unico frame e scrivi nel pannello azioni il codice che ti ho scritto e poi guarda l'effetto.
    Dopodichè provi con delle movieclip a forma di linea.

    Ci sarebbe anche il metodo di disegnare delle linee in runtime ma per il momento non mi sembra il caso di parlarne in quanto richiede un livello avanzato di as 2.0.


  • Super User

    crea una movieclip con qualsiasi forma.
    La metti sullo stage e gli dai il nome my_clip
    Seleziona il primo e unico frame e scrivi nel pannello azioni il codice che ti ho scritto e poi guarda l'effetto.
    Dopodichè provi con delle movieclip a forma di linea.

    Ci sarebbe anche il metodo di disegnare delle linee in runtime ma per il momento non mi sembra il caso di parlarne in quanto richiede un livello avanzato di as 2.0.


  • User Attivo

    grazie mille, funziona!!
    ho provato a cambiare i parametri dei pixel e a mettere y al posto di x così da far muovere l'oggetto in verticale...
    ora provo a vedere se riesco a capire il codice anche se ho i miei dubbi..eheh
    ho provato anche a far entrare due clip uno dall'alto e uno da sinistra..funziona..
    per farli entrare al contrario da destra e dal basso cosa devo cambiare nel codice?


  • User Attivo

    grazie mille, funziona!!
    ho provato a cambiare i parametri dei pixel e a mettere y al posto di x così da far muovere l'oggetto in verticale...
    ora provo a vedere se riesco a capire il codice anche se ho i miei dubbi..eheh
    ho provato anche a far entrare due clip uno dall'alto e uno da sinistra..funziona..
    per farli entrare al contrario da destra e dal basso cosa devo cambiare nel codice?


  • Super User

    Se aumenti la x va da sinistra verso destra
    se diminuisci la x va da destra verso sinistra
    se aumenti la y va dall'alto verso il basso
    se diminuisci la y va dal basso verso l'alto

    esempio prova a mettere un meno al posto del più in questa riga:
    this._x+=(400-this._x)/10;
    quindi diventa
    this._x-=(400-this._x)/10;
    gli dici che la x della clip deve dimuire progressivamente fino a 400.
    Ora se la clip ad esempio si trova a 600, il risultato del calcolo avrà segno negativo perchè 400-600 =-200 quindi dovrai utilizzare la classe Math ed il codice giusto sarà:

    this._x-=Math.abs((400-this._x)/10);

    fai prove su prove e alla fine farai tua la logica, si tratta di matematica niente di più 😉


  • Super User

    Se aumenti la x va da sinistra verso destra
    se diminuisci la x va da destra verso sinistra
    se aumenti la y va dall'alto verso il basso
    se diminuisci la y va dal basso verso l'alto

    esempio prova a mettere un meno al posto del più in questa riga:
    this._x+=(400-this._x)/10;
    quindi diventa
    this._x-=(400-this._x)/10;
    gli dici che la x della clip deve dimuire progressivamente fino a 400.
    Ora se la clip ad esempio si trova a 600, il risultato del calcolo avrà segno negativo perchè 400-600 =-200 quindi dovrai utilizzare la classe Math ed il codice giusto sarà:

    this._x-=Math.abs((400-this._x)/10);

    fai prove su prove e alla fine farai tua la logica, si tratta di matematica niente di più 😉


  • User Attivo

    ottimo, grazie mille tutto chiaro farò un pò di prove...
    action scrip cambia molto la concezione che avevo di flash perchè pensavo che i movimenti degli oggetti si potessero dare solo con le interpolazioni ed il codice servisse per regolare questi clip, invece si può usare il codice per tutto (movimenti ecc) e le intepolazioni spesso non si usano più..

    cmq grazie mille, spero di cominciare a capirci qualcosa poco per volta..

    ciao buona giornata:-))


  • User Attivo

    ottimo, grazie mille tutto chiaro farò un pò di prove...
    action scrip cambia molto la concezione che avevo di flash perchè pensavo che i movimenti degli oggetti si potessero dare solo con le interpolazioni ed il codice servisse per regolare questi clip, invece si può usare il codice per tutto (movimenti ecc) e le intepolazioni spesso non si usano più..

    cmq grazie mille, spero di cominciare a capirci qualcosa poco per volta..

    ciao buona giornata:-))


  • Super User

    hehe
    è il codice che comanda tutto e non l'incontrario :ciauz:


  • Super User

    hehe
    è il codice che comanda tutto e non l'incontrario :ciauz:


  • User Attivo

    ciao ti disturbo ancora...
    stavo cercando di imparare lo script che mi hai dato..ho provato a mettere il codice che mi hai dato sul clip invece che nel frame dello stage..
    ho modificato il codice così ma non funziona:
    onClipEvent(load){
    _alpha=0;
    }
    onClipEvent(enterFrame)
    {
    fg._x+=(400-this._x)/10;
    fg._alpha+=2;
    if( fg._x>=399)
    {
    fg._x=400;
    // fg.onEnterFrame=null;
    }
    }

    fg è il nome che ho dato al fotogramma
    ho fatto questa prova ma sicuramente ho sbagliato tutto..bhooo
    grazie e scusa.. :ciauz:


  • Super User

    Ciao fruttino ,
    innanzitutto mi fa piacere il tuo coinvolgimento nel cercare di ampliare letue conoscenze con Actionscript.

    Il tuo codice non va bene perchè non puoi nominare i fotogrammi e poi richiamarli da codice.
    L'opzione di nominarli è stata fatta per un semplice utilizzo nel spostarsi nella linea temporale utilizzando gotoAndPlay('nome frame') e gotoAndStop('nome frame').
    Un'altra cosa, ti sconsiglio vivamente di scrivere codice sulle movieclips o sui bottoni.
    Cerca di scrivere solo sul primoframe e tieni la linea temporale il più corta possibile.

    Il comando onEnterFrame significa che tutto ciò che è scritto tra le sue graffe viene eseguito tante volte al secondo uanto è il tuo frame rate.

    onClipEvent() è un metodo obsoleto che non serve a nulla 😉


  • User Attivo

    grazie della tua risposta..sto cercando di imparare poco per volta coadiuvato da un amico che sa programmare in java/jsp e che mi sta dando 2 dritte, ed oltretutto si sta intrippando di actionscript..
    ti chiedo una cosa...
    perchè mi sconsigli di non usare codice sui clip?
    per esempio se ho due palline che voglio interagiscano tra loro, non sarebbe più logico associare le azioni ad ogni pallina?

    grazie e quando sei stufo di rispondere dimmelo che altrimenti divento noioso..eheh :ciauz:


  • Super User

    Non è la soluzione ottimale.
    Devi tener presente che Actionscript segue le regole della OOP e quindi dovresti ragionare ad oggetti.

    Concettualmente se hai 2 palline la dovresti vedere così:
    ogni pallina è un oggetto ed ognuna di loro potrebbe avere le sue proprietà e metodi.
    Ad esempio una movieclip, che altro non è che un'istanza di un oggetto(della classe MovieClip) ha tra le sue proprietà _width.
    Il codice va scritto o sulla timeline o (la miglior cosa ma per il momento lascia perdere) in files .as con cui crei le tue classi personalizzate e lavori con ereditarietà e polimorfismo.
    Se spargi il codice per tutta l'applicazione diventa difficile tener traccia di tutto quello che fai e carichi la memoria dell'applicazione di rindondanze.


  • User Attivo

    ciao ..(sono l'amico di fruttino)
    vorrei sapere una cosa per curiosità ... quando faccio un file .as ci metto dentro la definizione della classe pallina con i suoi metodi e le sue proprietà, poi per creare nel mio fotogramma più palline le devo istanziare scrivendo codice nella timeline (cioè nell'action associata al primo fotogramma) e basta .. corretto?
    Poi non ti annoiamo più e se non rispondi .. non c'è problema ... la mia è curiosità
    Grazie e ciao


  • Super User

    Esattamente , istanzi i tuoi oggetti dalla timeline o meglio ancora da una classe ad esempio chiamata Manager che istanzia e invoca i metodi delle altre classi così che nella timeline hai solo un oggetto.

    Nessun disturbo, finchè sono on line rispondo.