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

    Testo dinamico evidenziato animato

    Chiedo a voi sommi maestri qual'è la soluzione al mio profondo dilemma, quale sarebbe la soluzione più semplice volendo creare un testo dinamico che si anima con una specie di sfondo colorato (75% trasparente) con la stessa larghezza della riga. Allego immagine per far capire come deve essere l'animazione e il testo. Se riuscite a darmi qualche consiglio perchè non so neanche da dove partire...



    Blomat Blog - creatività, tecnologia e comunicazione.

  2. #2
    Supponendo che il titolo fa casella a sé, si prende la larghezza delle casella

    var lar = casellatesto._width


    poi metti un clip sotto al testo e da actionscript puoi dare la larghezza a 0

    mioclip._width = 0

    quando vuoi lanci una tween sul tuo clip fino alla larghezza lar a memoria, comunque guarda la documentazione per tranquillità (ricorda anche di importare la classe Tween e le funzioni di easing)


    new Tween(mioclip, "_x", 0, lar, Regular.easeOut, 1, true)


    Per il testo invece puoi fare riferimento a questa classe, ma devi lavorarci un po'
    http://blog.greensock.com/textmetrics/

    (In AS3 invece credo ci siano dei metodi della classe textfield che ti restituisce la lunghezza della linea)

  3. #3
    Ti posto la soluzione in AS3 (titolo_txt e testo_txt sono 2 campi di testo dinamici che devi avere sullo stage, mentre gli import sono della library di tween greensock, scaricabile gratuitamente).

    Codice PHP:
    import com.greensock.*;
    import com.greensock.easing.*;

    var 
    s:Array = [];
    var 
    a:Array = [];
    var 
    speed:Number 2;
    var 
    titleShape:Shape;
    var 
    titleShapeW:Number;

    function 
    createShape()
    {
        
    titleShape addTitleShape();
        
    titleShapeW titolo_txt.textWidth 5;
        
        for (var 
    i:int 0i<testo_txt.bottomScrollVi++)
        {
            var 
    metrics:TextLineMetrics testo_txt.getLineMetrics(i);
            var 
    h:Number metrics.height;
            var 
    newY:Number testo_txt.+ (metrics.height i);
            var 
    textShape:Shape addTextShape(newYh);
            
            
    s.push(textShape);
            
    a.push(metrics.width+2);
        }
        
        
    goTween();
    }

    function 
    addTextShape(newY:Numberh:Number):Shape
    {
        var 
    s:Shape = new Shape();
        
    s.testo_txt.3;
        
    s.newY;
        
        
    s.graphics.beginFill(0x9999990.75);
        
    s.graphics.drawRect(002h);
        
        return 
    addChild(s) as Shape;
    }

    function 
    addTitleShape():Shape
    {
        var 
    s:Shape = new Shape();
        
    s.titolo_txt.3;
        
    s.titolo_txt.y;
        
        
    s.graphics.beginFill(0xCC00000.75);
        
    s.graphics.drawRect(002titolo_txt.height);
        
        return 
    addChild(s) as Shape;
    }

    function 
    goTween()
    {
        var 
    timeline:TimelineMax = new TimelineMax();
        
    timeline.insert(TweenMax.to(titleShapespeed, {width:titleShapeWease:Bounce.easeOut}) );
        for (var 
    i:int 0i<s.lengthi++)
        {
            
    timeline.insert(TweenMax.to(s[i], speed, {width:a[i], ease:Bounce.easeOut}))
        }
    }

    createShape(); 
    E' fatta al volo quindi è scritta un pò a cavolo, il principio di fondo cmq è questo.

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.