CodeCanyon

AS3 Talking Avatar library for Starling

AS3 Talking Avatar library for Starling

Supported devices:

on any Android or iOS devices that supports Air apps :) plus Starling desktop apps

Files Included:

  • .as3proj (FlashDevelop AIR sample project)
  • .as (source codes)
  • Five sample vector avatars
  • asDoc type Documentation

check out the none-starling version here

Sample Android App

with using this little but cool library, you will be able to initialize a talking avatar in your Starling Air mobile projects. You will be able to choose from current available avatars in your “bin” folder and insert your own voice .mp3 file and then addChild the Avatar class anywhere in your project and you’re done.

     import com.doitflash.utils.avatar.StarlingAvatar;
     import com.doitflash.utils.avatar.AvatarEvent;

     // set Class variable
     var _avatar:StarlingAvatar;

     // initialize a _holder. avatar will be addchilded in _holder.
     // _holder must have a specific width and height so we create a new Shape() in the _holder
     var _holder:Sprite = new Sprite();
     var rect:Shape = new Shape();
     rect.graphics.beginFill(0xf64a5f, 1);
     rect.graphics.drawRect(0, 0, 400, 600);
     _holder.addChild(rect);
     _holder.x = 100;
     _holder.y = 100;
     this.addChild(_holder);

     // initialize the StarlingAvatar
     _avatar = new StarlingAvatar();

     // add a listener to be notified when the avatar is loaded
     _avatar.addEventListener(AvatarEvent.LOADED_AVATAR, onLoadedAvatar);

     // add a listener to be notified when the mp3 file is loaded
     _avatar.addEventListener(AvatarEvent.LOADED_VOICE, onLoadedVoice);

     _avatar.holder = _holder;
     _avatar.avatarUrl = "WomanAvatar.swf"; // set the address to the avatar graphic you'd like to use
     _avatar.voiceUrl = "test.MP3"; // set the address to the mp3 file which you like to use for lip-syncing

     // call this method and load the avatar graphic begins
     _avatar.loadAvatar();

     private function onLoadedAvatar(e:AvatarEvent):void
     {
             // call this method and load the mp3 file begins
             _avatar.loadVoice();
     }

     private function onLoadedVoice(e:AvatarEvent):void
     {
             trace("sound length: ", e.param); // mp3 length is based on miliseconds

             // use this listener to be notified when the mp3 playback is finished.
             _avatar.addEventListener(AvatarEvent.SOUND_PLAY_FINISHED, onPlayComplete);

             // call this method and the mp3 file starts playing
             _avatar.play();
     }

     private function onPlayComplete(e:AvatarEvent):void
     {
             trace("onPlayComplete");
     }

     // call this method to pause the mp3 file while playing and it returns the millisecond position of the sound.
     // you can use this position to play the mp3 again and start from where it was paused.
     // var position:Number = _avatar.pause();
     // _avatar.play(position);
     //
     // call this method to stop the sound.
     // _avatar.stop();

     // When you're done with this class, call this method to clean up the memory.
     // _avatar.dispose();



we used the DMT library for dynamically generating textures to be used in Starling: https://github.com/XTDStudios/DMT

by
by
by
by
by
by