We help IT Professionals succeed at work.

Newbie AS3 question

msukow
msukow asked
on
328 Views
Last Modified: 2013-11-11
I am a newbie with AS3. I am trying to convert my old AS1 and AS2 files to AS3.

I want to create a function that will place movieClips on the stage and add listeners as needed so that they act as buttons. I have a call from a file named "indexAS3.fla" that is the following:
addIndexNavigation("filmInfoButton", "filmInfo", 84.1, 69.1); The name of the .as file is "indexAS3.as" and the code is pasted below.

The name of the first movieClip is: "filmInfo" and the linkage Class is set to "filmInfo", the Base class is set to "flash.display.MovieClip" and the Export for ActionScript and Export in first frame are both checked.

I get the following error message when I try to compile:
1180: Call to a possibly undefined method addIndexNavigation.
package {
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;
 
	public class indexAS3 extends MovieClip {
		private var buttonName, movieClipName:String;
		private var xLoc, yLoc:Number;
 
		public function addIndexNavigation(buttonName:String, movieClipName:String, xLoc:Number, yLoc:Number) {
			//
			var buttonName:movieClipName = new movieClipName();
			buttonName.x = xLoc;
			buttonName.y = yLoc;
			addChild(buttonName);
		}
	}
}

Open in new window

Comment
Watch Question

Author

Commented:
Originally, my code looked like the following (which is attached), and I wasn't using the "indexAS3.as" file. The code was placed in the first frame.
addIndexNavigation();
 
//----------------------- FUNCTIONS --------------------------//
function addIndexNavigation():void  {
	// constant for position of navigation elements
	var navHeight:Number = 69.1;
	//
	var filmInfoButton:filmInfo = new filmInfo();
	filmInfoButton.x = 84.1;
	filmInfoButton.y = navHeight;
	addChild(filmInfoButton);
	//filmInfoButton.addEventListener(MouseEvent.CLICK,updateDisplay(filmInfo));
	//
	}

Open in new window

Author

Commented:
And the code worked as expected. The code above was my initial attempt at AS3 code . I think I should use classes somehow for better code practices and flexibility.
Top Expert 2009

Commented:
ok so now you've sorted our your error or not?

in terms of using classes - personally i believe it depends if you need it or not. i.e. is this something that has a lot going on; are you going to want to reuse the code at a later stage for something else etc.

Author

Commented:
I still have the error - just wanted to clarify that I had a working solution without classes, but when I try to implement using classes, I do not. Primarily, I want to make all my code reusable.
Top Expert 2009

Commented:
ok the error means that you're trying to access the method before it exists.

when do you call your method?

Author

Commented:
Maybe I'm thinking about this all wrong. I have programmed a site (http://www.americanlegacy-themovie.com/) that is a very simple flash AS 1/2 site. I want to re-do the site in AS 3.0 and I want to use only one frame in my .fla file. I also want to use classes as much as possible to program the site. I realize this may not be the most efficient way of doing it, but I really am having problems understanding the transition from 2.0 to 3.0 and think this would be the best way to understand it well. Is there a good link or book out there that would show me how to do this?
Top Expert 2009
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
The reason I am re-working the code is to get a better understanding of AS3. I understand AS2 well, but am having a hard time updating my thinking to AS3 workflow logic. I am also trying to understand Flex which is obviously non-timeline-based.
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.