Visualizzazione dei risultati da 1 a 9 su 9

Discussione: AS3 e movimento mouse

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    8

    AS3 e movimento mouse

    Ciao a tutti,
    ecco il mio problema:
    ho un swf principale che richiama un altro swf contenente un oggetto che gira a 360 gradi in senso orario (per un totale di 24 fotogrammi).
    Praticamente sono 24 immagini di un oggetto che gira su se stesso ognuna su un fotogramma diverso.
    Non riesco a formulare l'AS3 per associare il movimento del mouse.

    movimento mouse verso dx= oggetto.play() o nexFrame();??
    movimento mouse verso sinistra=oggetto.prevFrame();??

    Qualcuno può aiutarmi o indicarmi qualche tutorial a riguardo?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    60
    crea un nuovo livello nel movieClip che ruota e incolla questo codice

    stop();
    stage.addEventListener(Event.ENTER_FRAME,muovi);

    function muovi(evt:Event):void {
    if (mouseX<stage.stageWidth * 0.5) {
    gotoAndPlay(currentFrame-1);
    if (currentFrame==1) {
    gotoAndPlay(24);
    }
    } else {
    gotoAndPlay(currentFrame+1);
    if (currentFrame==24) {
    gotoAndPlay(1);
    }
    }
    }

    dovrebbe andare
    ciao michele

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    60
    sostituisci a mouseX stage.mouseX

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    8
    grazie michele,
    lo provo e ti faccio sapere.
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    8
    grazie funziona!
    cortesemente potresti dirmi come fare lo stesso movimento (dx e sin) solo quando clicco e trascino il mouse sul mio mc. Ho provato usando il seguente codice, ma non funge in senso antiorario.


    this.addEventListener(MouseEvent.MOUSE_UP, Stop);

    function Stop(e:MouseEvent) {
    this.stop();
    }

    this.addEventListener(MouseEvent.MOUSE_DOWN, Muovi);

    function Muovi(e:MouseEvent):void {
    if (stage.mouseX<stage.stageWidth * 0.5) {
    gotoAndPlay(currentFrame-1);
    if (currentFrame==1) {
    gotoAndPlay(24);
    }
    } else {
    gotoAndPlay(currentFrame+1);
    if (currentFrame==24) {
    gotoAndPlay(1);
    }
    }
    }


    Grazie infinite.
    daniela

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    60
    un altro consiglio:
    se l' oggetto che ruota è un movieclip potresti usare la proprietà rotation senza i vari gotoAnd play e senza i 24 fotogrammi ma per esempio questo codice che gli da anche un effeto decelerazioe e accelerazione:

    var num:Number=1;
    oggetto.addEventListener(Event.ENTER_FRAME,ruota);

    function ruota(evt:Event):void {
    oggetto.rotation+=num;
    num=(stage.mouseX-(stage.stageWidth * 0.5))*0.1;

    }

    dove oggetto è il nome di istanza del tuo oggetto da ruotare
    ciao
    michele

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    8
    moolto interessante...grazie!...
    ma purtroppo non è quello che al momente mi serve...dovrebbe funzionare quando clicco e trascino il mio mc.
    continuo a provare...se mi dai una mano forse ci metterò qualche secolo in meno!
    grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    60
    prova così:

    stop();
    var controlla:Boolean=false;

    oggetto.addEventListener(MouseEvent.MOUSE_DOWN,ini ziaMovimento);
    oggetto.addEventListener(MouseEvent.MOUSE_UP,ferma Movimento);
    stage.addEventListener(MouseEvent.MOUSE_UP,fermaMo vimento);
    oggetto.addEventListener(Event.ENTER_FRAME,muovi);

    function iniziaMovimento(evt:MouseEvent):void {
    controlla=true;
    }

    function fermaMovimento(evt:MouseEvent):void {
    controlla=false;
    }

    function muovi(evt:Event):void {
    if (controlla==true) {
    if (stage.mouseX<stage.stageWidth * 0.5) {
    gotoAndPlay(currentFrame-1);
    if (currentFrame==1) {
    gotoAndPlay(50);
    }
    } else {
    gotoAndPlay(currentFrame+1);
    if (currentFrame==50) {
    gotoAndPlay(1);
    }
    }
    } else {
    gotoAndStop(currentFrame);
    }
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    8
    sì ora funziona...grazie!!

    anche se richiamando il mc dall'swf principale l'output è:

    TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.

    ...controllerò con calma

    grazie ancora
    daniela

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.