AS3 – take one step at a time: step 1

I finally started programming with ActionScript 3 (AS3); I know, I not a early adopter… ;)

And the first steps in AS3 are as uncomfortable as the first time I started OOP programming … or when I started moved from AS1 to AS2…

Since I started working for NOISE 5 months ago and moved to Amsterdam, I haven’t had time to do learn AS3.
That luckily has changed :) and I started learning the basics.

And the first obstacle I ran into was something very simple: I always use a basic document (FLA) with default library items, some layers I always use and some ActionScript code to align the stage:

_root._quality = "BEST";
Stage.scaleMode = "noScale";
Stage.showMenu = false;
Stage.align = "TL";
stop ();

I have this also in a class (AS2), so I thought it would be useful to rewrite this class in AS3.
and I wanted to use this in my new as3 files too… (remember that this is the first thing a tried)

First you need to create a document class:

Document Class
And in my case my document class was: ‘Main’


package  {

	public class Main {
		
		public function Main() {
			trace ('Main')			
		}
		
	}
	
}

(package generated by FlashDevelop)

Code didn’t pass; I got a Compiler Error:
5000: The class 'Main' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.


package  {

	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')			
		}
		
	}
	
}

I got some new errors:

  1. 1017: The definition of base class MovieClip was not found.
  2. 5000: The class ‘Main’ must subclass ‘flash.display.MovieClip’ since it is linked to a library symbol of that type.

So I added import flash.display.MovieClip;


package  {

	import flash.display.MovieClip;
	
	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')
		}
		
	}
	
}

Ahhh and now we can get the stage to work with my ‘old code’, let’s paste it into the new document:


package  {

	import flash.display.MovieClip;
	
	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')
			_root._quality = "BEST";
			Stage.scaleMode = "noScale";
			Stage.showMenu = false;
			Stage.align = "TL";
			
		}
		
	}
	
}

Auw: both _root and Stage doesn’t excited no more: I got an migration error


package  {

	import flash.display.MovieClip;	
	import flash.display.Stage;
	import flash.display.StageQuality;
	
	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')
			stage.quality = StageQuality.BEST;
			stage.scaleMode = "noScale";
			stage.showDefaultContextMenu = false;
			stage.align = "TL";
		}
		
	}
	
}

And at last it works…
The only thing now to do, is to put it in the correct package.

Be Sociable, Share!

3 Comments

  1. Jens W
    Posted June 21, 2008 at 14:44 | Permalink

    Hey gelijkaardig probleem, met een contstructor zonder argumenten gaat alles prima, maar met argumenten mee te geven blokkeert de boel, ik krijg incorrect number of arguments, expected 0 exceptie
    ken jij hier een antwoord op?

    De movieclip profielknop in m’n library heeft als base class Knop

    onderstaande staat in documentclass
    var p:ProfielKnop=new ProfielKnop(10,10,10,10);

    onderstaande saat in knop.as
    public function Knop(xPos:Number,yPos:Number,straal:uint,factor:Number) {

  2. Posted June 21, 2008 at 15:20 | Permalink

    Als Ik het goed begrijp wil je de oude manier van attachMovie uit AS2.

    Ik verwijs je naar een post (en een zipfile) gemaakt door Bredan Dawes: as3-for-lazy-bastards-like-me.
    Hierin zitten een paar voorbeelden van AS2 code dat vervangen is door AS3. Een daarvan is attachMovie en lijkt een antwoord op je vraag.

    Succes ermee.

  3. Posted November 24, 2009 at 14:49 | Permalink

    thanks.that’s helpful.i’m learning as3 ,i want to translate it into Chinese

One Trackback

  1. By [mck] » AS3 - take one step at a time: step 1a on September 24, 2007 at 08:54

    [...] [mck] a polymath zapper Skip to content Flash Video PlayerFlashBox – Just another boxGrummAboutWish listContact me « Another small update on my site design AS3 – take one step at a time: step 1 » [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*