Posted in AS3 on January 13th, 2010 by admin – Be the first to comment
If you need to mute/unmute a sound in a MovieClips timeline (eg. if you have a player that loads external swfs)
Try using SoundMixer and soundTransform like this:
1
2
3
4
5
6
7
8
| import flash.media.SoundTransform;
import flash.media.SoundMixer;
// Mute - sets volume to 0
SoundMixer.soundTransform = new SoundTransform(0);
//UnMute - sets volume to 1 (100%)
SoundMixer.soundTransform = new SoundTransform(1); |
Of course there are other ways to do it but this was exactly what I needed for my project and it worked just fine.
Feel free to comment other ways to do it.
Cheers!
Posted in Uncategorized on April 25th, 2009 by admin – 1 Comment
Do you write your code over and over every time you need to align an image to the stage center of your project? or maybe for some other task? I know I used to before I learned about static properties and methods, of course I had some snippets for that stored somewhere but still this is not the best solution.
This is very useful because it allows you to use properties from a class without having to import it first. Basically all you need to do is put the word static when declaring the properties and methods inside your class.
Utils.as
package
{
/**
* Description
*
* @langversion ActionScript 3
* @playerversion Flash 9.0.0
*
* @author Pedro Canterini
* @since 11.04.2009
*/
import flash.display.DisplayObject;
public class Utils
{
public static var myStr:String = "My tring here...";
/**
* @constructor
*/
public function Utils()
{
//super();
}
//---------------------------------------
// Align to center
//---------------------------------------
public static function alignToCenter(obj:DisplayObject):void
{
obj.x = obj.stage.stageWidth / 2 - obj.width / 2;
obj.y = obj.stage.stageHeight / 2 - obj.height / 2;
}
}
}
How to use it:
Utils.alignToCenter(theDisplayObject);
Notice that you can align any display object to the center of the stage not just images.
Posted in AS3 on April 24th, 2009 by admin – 1 Comment
This is not ready but I would like to share it anyways, for two reasons: I couldn’t find a free class (or didn’t look hard enough) and someone else might be looking for it. And also so people can take a look at my code and point something that could be improved.
I will post the final version once it is ready.
LightBox.as
//AS3///////////////////////////////////////////////////////////////////////////
//
// FlashInit.com
//
////////////////////////////////////////////////////////////////////////////////
package
{
/**
* LightBox Class
*
* @langversion ActionScript 3
* @playerversion Flash 9.0.0
*
* @author Pedro Canterini
* @since 22.04.2009
*/
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
public class LightBox extends Sprite
{
//---------------------------------------
// PRIVATE VARIABLES
//---------------------------------------
private var _imageHolder:Sprite;
private var _loader:Loader;
/**
* @constructor
*/
public function LightBox(url:String)
{
trace("lightbox is on! load: ", url);
var req:URLRequest = new URLRequest(url);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, handleProgress, false, 0, true);
_loader.load(req);
}
//---------------------------------------
// PUBLIC METHODS
//---------------------------------------
public function alignToCenter(object:DisplayObject):void
{
object.x = (object.stage.stageWidth - object.width) / 2;
object.y = (object.stage.stageHeight - object.height) / 2;
}
//---------------------------------------
// PRIVATE METHODS
//---------------------------------------
private function handleProgress(event:ProgressEvent):void
{
var percent:uint = int((event.bytesLoaded / event.bytesTotal) * 100);
trace(percent);
}
private function onComplete(event:Event):void
{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
handleImage();
}
private function handleImage():void
{
/* create holder for the bitmap */
_imageHolder = new Sprite();
addChild(_imageHolder);
_imageHolder.addChild(_loader);
/* align object */
alignToCenter(_imageHolder);
}
}
}
in order to use it just create a new Instance of it:
var lightBox:LightBox = new LightBox("assets/imgs/retratos/img-001.jpg");
addChild(lightBox);
I am working on the background and a loader and I will post as soon as they are done and integrated.
Posted in Uncategorized on April 24th, 2009 by admin – Be the first to comment
Hi!
I intent to have this blog as a tool to share my ActionScript 3 experiences, learn something from my erros and hopefully provide and share solutions for others having the same issues that I once had.
Please feel free to say anything and also provide better solutions/improvements for all the code you might find here.
Cheers
-Pedro