Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195

    [AS3] TweenEvent errore

    Ragazzi perchè mi dice "ReferenceError: Error #1065: La variabile TweenEvent non è definita."??

    mcl_logo è un oggetto movieclip

    il codice è il seguente:

    Codice PHP:
    import fl.transitions.Tween;
    import fl.transitions.easing.*;

    var 
    c:Tween = new Tween(mcl_logo"y"Strong.easeOut452.9274.63true);

    c.addEventListener(TweenEvent.MOTION_FINISHmyMoveLeft);

    function 
    myMoveLeft(){
        var 
    h:Tween = new Tween(mcl_logo"x"Strong.easeIn544.2259.69true);

    Grazie
    mamma mia che bestia

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    le classi del package "fl" vanno importate per essere utilizzate nel codice, anche su timeline, quindi il tuo codice deve essere:

    Codice PHP:
    import fl.transitions.Tween;
    import fl.transitions.TweenEvent;
    import fl.transitions.easing.*;

    var 
    c:Tween = new Tween(mcl_logo"y"Strong.easeOut452.9274.63true);

    c.addEventListener(TweenEvent.MOTION_FINISHmyMoveLeft);

    function 
    myMoveLeft(){
        var 
    h:Tween = new Tween(mcl_logo"x"Strong.easeIn544.2259.69true);


  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    ... ma che banana che sono
    non avevo importato la classe.

    Senti And80 visto che ci sono ti chiedo anche come possa impostare a nothing dopo il tween
    sempre se possibile

    ovvero un ipotetico
    set c:Tween = nothing;

    in modo da poter riutilizzare la variabile c:Tween + volte visto che sennò mi da conflitto di definizione nello spazio dei nomi internal.

    o anche poter riutilizzare il motion + di una volta ma quello basta che me lo metto in una funzione
    no?

    grazie ma ho bisogno di un inquadramento con questo nuovo AS3 debbo dire veramente veloce e potente.

    Grazie
    mamma mia che bestia

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    l'oggetto in quanto tale può essere eliminato, in ogni caso basta che crei l'istanza una sola volta e poi la riutilizzi con new tutte le volte che vuoi, ad esempio

    var t:Tween;

    t = new Tween(...);
    // altre azioni ...

    t = new Tween(...);

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    e sì come sempre hai ragione

    Sorry domanda sciocca.

    il problema sorge quando fai Tween Contemporaneamente che giustamente devono avere un nome differente

    grazie And80 come sempre esplicativo
    mamma mia che bestia

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    già, mi sono scordato un appunto importante, ossia quando utilizzi delle tween con lo stesso nome, magari se utilizzi funzioni per attivare le tween ecc... devi fare attenzione alla sovrapposizione, infatti diverse tween contemporanee con lo stesso nome vengono anche eseguite, ma spesso creano dei blocchi perchè il player non riesce a gestirle, quindi di regola meglio sempre dare nomi univoci alle tween, ad esempio io di solito per gli spostamenti in X e Y utilizzo una funzione di questo genere (in una classe con varie funzioni di diversa utilità):

    Codice PHP:
    package {
        
    import flash.display.*;
        
    import fl.transitions.*;
        public class 
    Com {
            private static var 
    __w:Object = {};
            public static function 
    move(t:DisplayObject,xm:Number,ym:Number,e:Function=null,d:Number=1,s:Boolean=true):Tween {
                
    __w['txm'+t.name] = new Tween(t"x"et.xxmds);
                
    __w['tym'+t.name] = new Tween(t"y"et.yymds);
                return 
    __w['txm'+t.name];
            }
            public static function 
    scale(t:DisplayObject,xs:Number,ys:Number,e:Function=null,d:Number=1,s:Boolean=true):Tween {
                
    __w['txs'+t.name] = new Tween(t"scaleX"et.scaleXxsds);
                
    __w['tys'+t.name] = new Tween(t"scaleY"et.scaleYysds);
                return 
    __w['txs'+t.name];
            }
            public static function 
    rotate(t:DisplayObject,r:Number,e:Function=null,d:Number=1,s:Boolean=true):Tween {
                
    __w['tr'+t.name] = new Tween(t"rotation"et.rotationrds);
                return 
    __w['tr'+t.name];
            }
        }

    e la usi ad esempio così ("palla" è un movieclip a forma di cerchio, disegnato sullo stage):

    Codice PHP:
    import fl.transitions.easing.*;
    stage.addEventListener(MouseEvent.CLICKclickHandler);
    function 
    clickHandler(e:MouseEvent) {
        
    Com.move(pallamouseXmouseYBounce.easeOut);

    utilizzando la funzione attraverso la classe puoi anche assegnare un'istanza alla tween e assegnargli gli eventi classici della classe Tween, riprendendo l'esempio di prima

    Codice PHP:
    import fl.transitions.Tween;
    import fl.transitions.TweenEvent;
    import fl.transitions.easing.*;
    stage.addEventListener(MouseEvent.CLICKclickHandler);
    function 
    clickHandler(e:MouseEvent) {
        var 
    t:Tween Com.move(pallamouseXmouseYBounce.easeOut);
        
    t.addEventListener(TweenEvent.MOTION_FINISHfinishHandler);
    }
    function 
    finishHandler(e:TweenEvent) {
        
    trace("New X: "+e.target.obj.x);
        
    trace("New Y: "+e.target.obj.y);


  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    195
    sto cercando di utilizzare la tua classe Com, ma sinceramente non conosco il modo di importarla nel mio stage

    come si fa? (...ma come se fa a esse così gnoranti?!?)

    ho provato un import un #include, ma niente

    mi da errore e mi dice questo:
    Codice PHP:
    5000La classe 'tweenMovie' deve essere una sottoclasse di 'flash.display.MovieClip' perché è collegata a un simbolo di libreria di quel tipo
    boh :master:
    mamma mia che bestia

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    :master: sinceramente non so cosa hai fatto esattamente... comunque la classe va messa dentro un file Com.as e il file deve stare nella stessa cartella del fla per funzionare... quell'altra cosa del tweenMovie non so da dove sia uscita

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.