Pedir presupuesto

Diferencias entre Actionscript 2 y Actionscript 3

Todos sabemos que los cambios en versiones de lenguajes de programación a veces acarrean modificaciones importantes y distintas formas de programar.

Es el caso precisamente de Adobe Flash, cambiando su forma de programar desde su versión AS2 hasta su última versión AS3. Ahora mismo estoy afrontando un proyecto web en el que tengo que escribir código AS3, por cierto bastante distinto a como lo hacia en As2, y la verdad es que me ha costado lo mio encontrar según que cosa, por eso, quiero hacer una pequeña recopilación de diferencias entre AS2 y AS3:

Acceder al root o main del contenido

Actionscript 2

[as]
//function on main timeline
function foo():Void
{
trace(«foo»);
}
//called from anywhere in content
_root.foo();
[/as]

Actionscript 3

[as]
//function on main timeline
function foo():void
{
trace(«foo»);
}
//called from anywhere in SWF
MovieClip(root).foo();
[/as]

Interactuar con botones

Actionscript 2

[as]
function onButtonRelease():Void
{
trace(«button was clicked»);
}
function onButtonRollOver():Void
{
trace(«button was moused over»);
}
my_button.onRelease = onButtonRelease;
my_button.onRollOver = onButtonRollOver;
[/as]

Actionscript 3

[as]
function onButtonClick(event:MouseEvent):void
{
trace(«button was clicked»);
}
function onMouseOver(event:MouseEvent):void
{
trace(«button was moused over»);
}
my_button.addEventListener(MouseEvent.CLICK, onButtonClick);
my_button.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
[/as]

Abris una URL

Actionscript 2

[as]
getURL(«http://www.adobe.com», «_blank»);
[/as]

Actionscript 3

[as]
var url:URLRequest = new URLRequest(«http://www.adobe.com»);
navigateToURL(url, «_blank»);
[/as]

Escuchador para hacer algo cuando se presiona una tecla

Actionscript 2

[as]
function onKeyDown():Void
{
var code:Number = Key.getCode();
var char:String = String.fromCharCode(code);
trace(«Key Down : code : » + code + » char : » + char);
}
Key.addListener(this);
[/as]

Actionscript 3

[as]
function onKeyDownHandler(event:KeyboardEvent):void
{
var code:uint = event.keyCode;
var char:String = String.fromCharCode(code);
trace(«Key Down : code : » + code + » char : » + char);
}
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyDownHandler);
[/as]

Instanciar (Attach) un MovieClip de la librería

Actionscript 2

[as]
attachMovie(«my_clip», «clip», 10);
clip._x = 100;
clip._y = 100;
clip._alpha = 50;
[/as]

Actionscript 3

[as]
var clip:MovieClip = new my_clip();
clip.x = 100;
clip.y = 100;
clip.alpha = .5;
addChild(clip);
[/as]

Crear y pintar un MovieClip dinámicamente

Actionscript 2

[as]
function drawCircle(target_mc:MovieClip, radius:Number, fillColor:Number, fillAlpha:Number)
{
var x:Number = radius;
var y:Number = radius;
with (target_mc)
{
beginFill(fillColor, fillAlpha);
moveTo(x + radius, y);
curveTo(radius + x, Math.tan(Math.PI / 8) * radius + y, Math.sin(Math.PI / 4) *
radius + x, Math.sin(Math.PI / 4) * radius + y);
curveTo(Math.tan(Math.PI / 8) * radius + x, radius + y, x, radius + y);
curveTo(-Math.tan(Math.PI / 8) * radius + x, radius+ y, -Math.sin(Math.PI / 4) *
radius + x, Math.sin(Math.PI / 4) * radius + y);
curveTo(-radius + x, Math.tan(Math.PI / 8) * radius + y, -radius + x, y);
curveTo(-radius + x, -Math.tan(Math.PI / 8) * radius + y, -Math.sin(Math.PI / 4) *
radius + x, -Math.sin(Math.PI / 4) * radius + y);
curveTo(-Math.tan(Math.PI / 8) * radius + x, -radius + y, x, -radius + y);
curveTo(Math.tan(Math.PI / 8) * radius + x, -radius + y, Math.sin(Math.PI / 4) *
radius + x, -Math.sin(Math.PI / 4) * radius + y);
curveTo(radius + x, -Math.tan(Math.PI / 8) * radius + y, radius + x, y);
endFill();
}
}
createEmptyMovieClip(«circle_mc», 10);
circle_mc._x = 250;
circle_mc._y = 250;
drawCircle(circle_mc, 250, 0xFFe0AC, 50);
[/as]

Actionscript 3

[as]
var clip:MovieClip = new MovieClip();
addChild(clip);
clip.x = 250;
clip.y = 250;
clip.graphics.lineStyle(2, 0xF89950);
clip.graphics.beginFill(0xFFe0AC, .5);
clip.graphics.drawCircle(0, 0, 200);
[/as]

Poner un color a un MovieClip dinámicamente

ActionScript 2

[as]
var clip:MovieClip = attachMovie(«circle_clip», «circle_clip», 1);
clip._x = 100;
clip._y = 100;
function onStageClick():Void
{
var c:Color = new Color(clip);
c.setRGB(Math.random() * 0xFFFFFF);
}
onMouseUp = onStageClick;
[/as]

ActionScript 3

[as]
var clip:MovieClip = new circle_clip();
clip.x = 100;
clip.y = 100;
addChild(clip);
function onStageClick(event:MouseEvent):void
{
var c:ColorTransform = new ColorTransform();
c.color = (Math.random() * 0xFFFFFF);
clip.transform.colorTransform = c;
}
stage.addEventListener(MouseEvent.CLICK, onStageClick);
[/as]

Incluir sonido y que se escuche

ActionScript 2

[as]
function onSoundComplete():Void
{
trace(«sound is completed»);
}
var my_sound:Sound = new Sound();
my_sound.attachSound(«beep_id»);
my_sound.setVolume(50);
my_sound.onSoundComplete = onSoundComplete;
my_sound.start();
[/as]

ActionScript 3

Para utilizar esta opción en AS3 hay que darle a propiedades del sonido (mp3) y activar «Export For ActionScript» y «Export in Frame 1» poniendole como nombre de clase «beep_id»

[as]
function onSoundComplete(event:Event):void
{
trace(«sound is completed»);
}
var my_sound:Sound = new beep_id();
var sTransform:SoundTransform = new SoundTransform();
sTransform.volume = .5;
var channel:SoundChannel = my_sound.play();
channel.soundTransform = sTransform;
channel.addEventListener(Event.SOUND_COMPLETE, onSoundComplete);
[/as]

Cargar y mostrar una imagen dinámicamente

ActionScript 2

[as]
createEmptyMovieClip(«loader», 10);
loader.loadMovie(«image.png»);
loader._x = 100;
loader._y = 100;
loader._rotation = 20;
loader._alpha = 50;
[/as]

ActionScript 3

[as]
var loader:Loader = new Loader();
loader.load(request);
loader.x = 100;
loader.y = 100;
loader.rotation = 20;
loader.alpha = .5;
addChild(loader);
[/as]

¿Te ha gustado?, Comparte!!

Compartir en facebook
Compartir en twitter
Compartir en linkedin
Compartir en whatsapp
Compartir en email

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

¡Pide tu presupuesto!

Completa los campos para poder enviarte un presupuesto

Todos y tu presupuesto son a medida y totalmente personalizados, entendemos que dos proyectos online no pueden ser iguales y que cada cliente tiene unos objetivos y necesidades muy diferentes, es por eso que para elaborar un presupuesto, necesitamos saber de ti, tu proyecto y objetivos.

Los campos marcados con (*) son obligatorios.

La comunicación enviada quedará incorporada a un fichero del que es responsable COLORDEU. Esta comunicación se utilizará exclusivamente para tratar sus datos para atender su solicitud, siempre de acuerdo al Reglamento (UE) 2016/679 (RGPD), la Ley Orgánica 15/1999 (LOPD) y el Real Decreto 1720/2007 de desarrollo de la LOPD), sobre protección de datos. Sus datos no se comunicarán a terceros, excepto por obligación legal, y se mantendrán mientras no solicite su cancelación. En cualquier momento usted puede ejercer los derechos de acceso, rectificación, portabilidad y oposición, o si procede, a la limitación y/o cancelación del tratamiento, comunicándolo por escrito, indicando sus datos personales mediante un email a hola@colordeu.es