views:

94

answers:

1

Hi all,

I have a project i need to update form AS2 to AS3 as i need some of the new functions available for vertical centering of text.

My current AS2 code on the time line is as follows.

var dataField =  _root.dataField;
var dataType =  _root.dataType;
var dataPage =  _root.dataPage;
var dataVar =  _root.dataVar;
_root.mc.onRelease = function() {
    getURL("index.php?page="+dataPage+"&num="+dataNum+"&"+dataType+"="+dataVar, "_self");
};

And my external AS file is as follows.

import mx.transitions.Tween;

/**
 *
 *  StandardKey is attached to a movieclip in the library.
 *  It handles the basic button behavior of the keyboard keys.
 *  When each button is placed on the stage, it's instance name
 *  will be the unique ID of the key.
 *
 */
class StandardKey extends MovieClip {


    ///////////////////////////////////////

    //Stage Elements    
    var highlight:MovieClip;
    //End Stage Elements
    var highlightTween:Tween;

    function StandardKey(Void) {
                //Repaint the key with 0 alpha
        highlight._alpha = 0;
    }


    function onPress(Void):Void {

        //Do the highlight animation
        highlightTween.stop();
        highlightTween = new Tween(highlight, "_alpha", mx.transitions.easing.Regular.easeInOut, 100, 0, 10, false);
    }

}

Here is my attempt at moving timeline and external AS2 to AS3

Timeline i now have :

var dataField =  this.dataField;
var dataType =  this.dataType;
var dataPage =  this.dataPage;
var dataVar =  this.dataVar;
var dataNum =  this.dataNum;
_root.mc.onRelease = function() {
navigateToURL(new URLRequest("index.php?page="+dataPage+"&num="+dataNum+"&"+dataType+"="+dataVar, "_self"));
};

External AS3 i have

package {
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.display.MovieClip;

/**
 *
 *  StandardKey is attached to a movieclip in the library.
 *  It handles the basic button behavior of the keyboard keys.
 *  When each button is placed on the stage, it's instance name
 *  will be the unique ID of the key.
 *
 */
public class StandardKey extends MovieClip {


    ///////////////////////////////////////

    //Stage Elements    
    var highlight:MovieClip;
    //End Stage Elements
    var highlightTween:Tween;

    public function StandardKey(Void) {
                //Repaint the key with 0 alpha
        highlight._alpha = 0;
    }


    public function onPress(Void):void {

        //Do the highlight animation
        highlightTween.stop();
        highlightTween = new Tween(highlight, "_alpha", fl.transitions.easing.Regular.easeInOut, 100, 0, 10, false);
    }

}
}

The errors i am currently getting are :

Scene 1, Layer 'Label', Frame 1, Line 6 1120: Access of undefined property _root. Scene 1, Layer 'Label', Frame 1, Line 7 1137: Incorrect number of arguments. Expected no more than 1.

If any one could help me work this out i would appreciate it very much.

Kind regards Mat.

+1  A: 

Don't use _root, if you absolutely need to reference upwards, the closest AS3 equivalent is stage.

DisplayObject properties no longer start with an underscore (_alpha vs. alpha in your case).

You can't use onRelease, you need to use addEventListener()

Your timeline code makes little, sense, why are you making local vars?

All in all, I'd recommend you reading up on Adobe's migration guide.

grapefrukt
i'm sorry if this comes of as a bit harsh, but your code basically needs a complete rewrite.
grapefrukt
Oh dear :( , i thought this might be the case, i tried to change bits here and there to get it working in AS3.The local variables are passed to from a dynamic php page to the button as its a navigational button.
Mat