FEffects

versie 1.1


FEffects is een library waarmee u bijvoorbeeld visuele overgangen zoals motion-tweens kunt creëren.
Het pakket biedt u in feite een Tween klasse en Robert Penners 'verbeteringen worden hier gebruikt.
Het kan gebruikt worden op dezelfde manier, in uw flash, flash9 + en JavaScript-projecten.
[feffects-chips.swf]

Installatie


Om gebruik te maken FEffects, moet u de bibliotheek die gebruik maakt van haxelib, zoals dit:
haxelib install feffects

Dan kunt u gebruik maken van de bibliotheek door de toevoeging-lib feffectstoe te voegen aan de commandline parameters van haxe.

Tutorial


FEffects 'Tween is vooral gebruikt voor het maken visuele overgangen, maar in feite, het is gewoon een numerieke waarde interpolatie : De Tween klasse zal berekent de tussenliggende waarden volgens de begin waarde, de end waarde de duration en de gekozen Gemakelijke functie.
U kunt het object en de property die u wilt bijwerken of specificeer de callback functie dat de uitgerekende waarde zal ontvangen en het argument. Het is een zwevende waarde, u kan alles met de waarde doen wat u wilt en u kunt het vooral overal voor laten gelden, any property (positie, schaal, rotatie, alpha en meer).
FEffects 'Tween heeft de volgende methoden:
  • start()
  • stop()
  • pause()
  • resume()
  • seek( n : Int )
  • reverse()

en de volgende verkrijgers:

  • duration
  • position
  • isPlaying
  • reversed

Voorbeeld


Sample.hx :
import feffects.Tween;
import feffects.easing.Bounce;

import flash.text.TextField;

class Sample
{
    var tf    : TextField;
    
    function new()
    {
        tf = new TextField();
        flash.Lib.current.addChild( tf );
        
        // De tween creëren
        var tween = new Tween( 0, 280, 5000, Bounce.easeOut );
        // De update functie bepalen ( Stop functie is optioneel )
        tween.setTweenHandlers( move, finished );
        // De tween lanceren
        tween.start();
    }
    
    function move( e : Float )
    {
        tf.text = Std.string( e );
        tf.y = e;
    }

    function finished( e : Float )
    {
        trace ( "tween finished" );
    }
    
    static function main()
    {
        var v = new Sample();
    }
}

Dan, om dit voorbeeld te creëren, hier komt de build bestand: build.hxml
-swf9 sample.swf
-main Sample
-lib feffects

Dit voorbeeld toont een tekstveld dat valt uit de top (0) aan de onderkant (280) van de scène. Bij het vallen, vertoont het tekstveld de werkelijke tussenliggende waarde. De looptijd is vastgesteld tot 5000 ms.
Zoals u kunt zien, een eenvoudige callback functie is move en we gebruiken de berekende waarde, gegeven in het argument, om de y positie van het tekstveld te bepalen. Maar we maken ook gebruik van deze waarde als gewoon weer tekst.
Maar je kunt gebruik maken van de korte syntaxis die u toelaat om rechtstreeks de property in te stellen van die zal worden gewijzigd met behulp van Reflection, zoals dat:
Sample.hx :
import feffects.Tween;
import feffects.easing.Bounce;

import flash.text.TextField;

class Sample
{
    function new()
    {
        tf = new TextField();
        flash.Lib.current.addChild( tf );
        
        // De tween creëren 
        var tween = new Tween( 0, 280, 5000, tf, "y", Bounce.easeOut );
        // de tween lanceren
        tween.start();
    }
        
    static function main()
    {
        var v = new Sample();
    }
}

Tweens beschikbaar

  • Quint.easeIn, Quint.easeOut, Quint.easeInOut
  • Sine.easeIn, Sine.easeOut, Sine.easeInOut
  • Back.easeIn, Back.easeOut, Back.easeInOut
  • Bounce.easeIn, Bounce.easeOut, Bounce.easeInOut
  • Circ.easeIn, Circ.easeOut, Circ.easeInOut
  • Cubic.easeIn, Cubic.easeOut, Cubic.easeInOut
  • Elastic.easeIn, Elastic.easeOut, Elastic.easeInOut
  • Expo.easeIn, Expo.easeOut, Expo.easeInOut
  • Linear.easeIn, Linear.easeOut, Linear.easeInOut, Linear.easeNone
  • Quad.easeIn, Quad.easeOut, Quad.easeInOut
  • Quart.easeIn, Quart.easeOut, Quad.easeInOut

Meer voorbeelden


Meer voorbeelden in flash<=8, flash9 of JavaScript(Engels) here
version #7324, modified 2009-12-09 19:48:42 by timo395