Flash CS3 / Flex 2 AS3 Error #1093

ActionScript Error #1093: Syntax error.

Update 2/25/2008

Description:
This is one of the least descriptive descriptions that Flash/Flex will provide you. It can be given for a number of reasons. Some that I have run into I have not found the reason for, but instead I just rewrite the entire line of code that it reports. One reason that I have found that is duplicate-able is copying code from the web and pasting it into Flash. Most especially code with quotes.

Fix 1:
Delete the line of rogue line of code and retype it from scratch.

Again I had this error and even after commenting the line of code out entirely I still received this error. Once more I deleted the code and retyped and it worked just fine. Below is the line of code commented out. Don’t beat your head on this one. Just delete and retype. I believe that this error has something to do with the copy and paste functionality within the IDE.

Bad/Good Code 1: (this code actually works after being retyped)

/*//stage.removeEventListener(Event.ENTER_FRAME, moveCar);*/

Fix 2:
Delete the quotes from the code that you copied from the web and replace them with regular quotes.

Bad Code 2:

this.thePlayer.videoSource = main_video.flv;

Good code 2:

this.thePlayer.videoSource = main_video.flv;

Fix 3:
Delete the #(pound symbol) before the color value.

Bad Code 3:

graphics.lineStyle(1, #FFFFFF);

Good code 3:

graphics.lineStyle(1, 0xFFFFFF);

Thanks to grildcheese who left a comment about Fix3 above.

Fix 4:
Do not use #include in ActionScript 3 instead use import.

Bad Code 4:

package
{
#include “myClass.as”

Bad Code 4:

package
{
import myClass;

I will continue to post reasons for AS3 error 1093 as I find them and hopefully it will help you out.

As Always, Happy Flashing

Flash CS3 / Flex AS3 Error #1086

ActionScript Error: 1086: Syntax error: expecting semicolon before mult

Description:
This is a very easy and straightforward error with a horrible description. It actually has nothing to do with a semicolon at all. All this error means is that you forgot a ‘.’ in your import before the ‘*’.

Fix:
Add the Dot

Bad Code:

import flash.events*;

Good Code:

import flash.events.*;

Hopefully the confusing description for this ActionScript Error didn’t cause you to pull your hair out.

As Always Happy Flashing

Flash Error #1086: Syntax error: expecting semicolon before dot.

Description:
Another reason for the Flex / Flash Error #1086 is because a function/method call is typed.  It is very important to type a function but do not type the call to the function.

Fix:
Remove the typing at the end of the method call.

Bad Code:

resource.readXml (requestId, onResourceXmlLoadSuccess, onResourceXmlLoadFail):void;

Good Code:

   resource.readXml (requestId, onResourceXmlLoadSuccess, onResourceXmlLoadFail);

Happy Flashing

Flash CS3 / Flex AS3 Error #1053

ActionScript Error #1053: Accessor types must match.

Description:
This is a great error that has absolutely no documentation. This is what Adobe has to say about it.

The non-error error.  ActionScript Error #1053 from Adobe Live Docs
Notice how the right side of the image doesn’t have any text at all. It is simply left blank. To understand this error you need to understand what an ‘Accessor’ is. An ‘Accessor’ is a ‘Getter’ that accompanies a ‘Setter’. The reason it is called an ‘Accessor’ is because it accesses the variable set using a ‘Setter’.

So what does that mean for you. This error means that the Getter(Accessor) is not set as the same Type as the Setter.

Fix:
Make sure that whatever you return in the ‘Getter’ is the same ‘Type’ as what is set in the ‘Setter’.

Bad Code:

function get sClickable():String {
return _clickable.toString();
}
function set sClickable(myClickable:Boolean):void {
this._clickable=myClickable;
}

Good Code:

public function get sClickable():Boolean {
return _clickable;
}
public function set sClickable(myClickable:Boolean):void {
this._clickable=myClickable;
}

So now you know how to solve ActionScript Error #1053.

As Always Happy Flashing.

Flash/Flex AS3 Error #1023: Stack overflow occurred.

Error #1023: Stack overflow occurred

at MyClass/get id()

Description:
This will happen if the stack has so much data that it is full. Nothing like Thanksgiving dinner to overflow my stack.  What is a stack and how does it get full you ask. Simply put each method(function) has a stack and that stack stores data associated with the method such as local variables with the method. Although it is a good idea to understand what a stack is you really you don’t need to have an in depth understanding of stacks to understand this error and it’s solution. Basically this error is saying that you are most likely calling the function recursively. Or in other words you might be calling the function from within itself.

Solution:
To rid yourself of ActionScipt error 1023 make sure that you don’t call the method from within itself which will eliminate any type of recursion in your method call. You may be tempted to do this by setting a variable name the same as the function name. Change either one and this will go away. Notice in the ‘Bad Code1’ example that each time the getter returns what you think is an ‘int’ you actually are calling the setter function again recursively. The trace statement will also produce AS3 Error #1023

Bad Code1:

public function set id (myId:int):void
{
this._id = id;
}
public function get id ():int
{
trace(“this.id”,this.id);
return this.id;
}

Good Code1:

public function get id ():int
{
trace(“this.myId”,this.myId);
return this.myId;
}

Bad Code2:

private function recursiveLoop ():void
{
recursiveLoop ();
}

Good Code2:

private function noRecursion():void
{
someOtheFunction ();
}

Adobe actually has a reasonable explanation for this error in liveDocs. Here is a link to the Adobe page that explains ActionScript Error 1023

As always Happy Flashing

Flash CS6 / Flex Error #1009: Cannot access a property or method of a null object reference

TypeError: Error #1009: Cannot access a property or method of a null object reference

ActionScript 3 Error #1009 is an AS3 that you can get for many anecdotal reasons. This error basically means that you are trying to reference something that isn’t there yet. That something can be a variable, data from the server, or even a movieClip or other display instance. So if you try and make a call to something and are getting this error simply look at what you are trying to reference and ask yourself is it there yet.
Don’t bang your head against the wall any longer. Here I explain one of the most un-obvious ways to get this error.

One reason that you will get AS3 Error #1009 is because you are trying to access a movieClip that isn’t instantiated yet. For example you try and reference a movieClip named loader_mc that is inside another movieClip. you are referencing it from a class that you created. Each time you run the test the movie you get the Run-Time Error #1009. You look inside your movieClip and see that the loader_mc is right where you want it. It is on frame 10 inside your animated moveiClip. That is when it dawns on you that the call to loader_mc happens when it is instantiated. Simply, put loader_mc on frame 1 and change it’s alpha to 0 and then the movieClip will be instantiated when the call from your custom class is made.

Another reason for this error is simply incorrect targeting. If you target parent.bob and the correct reference is parent.parent.bob then you will get this error as well.

Fix 1 :

Make sure the the reference is instantiated before it is called.  This means that the script is run after the object is loaded or the frame in the animation has been reached etc…

Fix 2 :

Check your targeting

Thanks and Happy Flashing

Flash CS3 / Flex Error #2136: The SWF file file:///C|/Curtism/Flash/matchWordsGameTest.swf contains invalid data

#2136: The SWF file file:///C|/Curtism/Flash/myFile.swf contains invalid data.

Fun error that you get when compiling the swf with an external AS file as your ‘Document class’. Most Likely you will get this error if you are using a document class and also have code on your timeline.

Fix :

Remove the code from your timeline or remove the Document Class

As Always Happy Flashing

Flash/Flex AS3 Error #2007

Error #2007: Parameter text must be non-null.It is the error of the year Error 2007. This error is very ambiguous but is not hard to understand once you realize what it means.

This error means that you are trying to assign an object some text but you forget to target the text and instead you target the text field. In the bad example below ‘.text’ is forgotten. It is included in the Good Code

Bad Code:

for (var i:int = 0; i<15; i++) { array[i] = myText_txt;
}

Good Code:

for (var i:int = 0; i<15; i++) { array[i] = myText_txt.text;
}

And that is how you solve ActionScript Error #2007: Parameter text must be non-null.

As always Happy Flashing

Flash CS3 / Flex 2 Error #1084

ActionScript Error #1084: Syntax error: expecting rightbrace before end of program.

Error 1084 is the general error number for syntax errors. ActionScript Error #1084 can be any number of errors. I will keep this one up to date with all the variations I find and how to fix them.

AS3 Error 1084: Syntax error: expecting rightbrace before end of program

This is a very easy one. This error just means that you are most likely missing a right brace. Or you have nested code improperly.

Bad Code:

package com.cjm
{
class CoolClass {
function CoolClass () {
trace(“Something cool”)
}
}

Good Code:

package com.cjm
{
class CoolClass {
function CoolClass () {
trace(“Something cool”)
}
}
}

Please make note of the third bracket at the end of the good code.

ActionScript Error #1084: Syntax error: expecting colon before semicolon.

You will most likely get this error if you are using a ternary statement and you forget to use a colon, forgot the last part of your ternary, or you replace the colon with a semicolon. This is illustrated in the following example:

Bad Code:

me.myType == “keys” ? trace(keys);

or

me.myType == “keys” ? trace(keys) ; trace(defs);

Good Code:

me.myType == “keys” ? trace(keys) : trace(defs);

Flash/Flex Error #1084: Syntax error: expecting identifier before leftbrace.

Description:
This Flash/Flex Error is reported when you left out the name of your class. The ‘identifier‘ that it is looking for is the name of your class.

Fix:
You will see in the code below that you just need to add in the name of your class and the error will go away.

Bad Code:

package com.cjm.somepackage {
public class {
}
}

Good Code:

package com.cjm.somepackage {
public class MyClass {
}
}

Flex/Flash Error #1084: Syntax error: expecting leftparen before colon.
or
Flex/Flash Error #1084: Syntax error: expecting rightparen before colon.

Description:
These AS3 Errors are reported when you the order of the parenthesis and colon are not in the proper place or the parenthesis is missing.

Fix:
The AS3 code below demonstrates the placement error. Properly order the items and the error will disappear. Also, make sure that a parenthesis is not missing. The ‘Bad Code’ gives an example of leftParen and then right paren in the order.

Bad Code:

public function ScrambleSpelling:void (s:String)
or
public function ScrambleSpelling(s:String:void

Good Code:

public function ScrambleSpelling (s:String):void

Flex/Flash Error #1084: Syntax error: expecting rightparen before semicolon.

Description:
This AS3 Error is reported most often when the parenthesis is missing.

Fix:
Make sure that a parenthesis is not missing. The ‘Bad Code’ gives an example of leftParen and then right paren in the order.

Bad Code:

tempArray.push((middle.splice(middle.length-1) * Math.random());
or
tempArray.push(middle.splice(middle.length-1) * Math.random();

Good Code:

tempArray.push(middle.splice(middle.length-1) * Math.random());

Flex/Flash Error #1084: Syntax error: expecting identifier before 1084.

Description:
This AS3 Error is reported when you have begun a package, class, function/method or variable with a numeric character rather than an Alpha character, _(underscore), or $(dollar sign).  In the Flash Authoring environment it won’t allow you to add numerics as the first character in an instance name or in the linkage but with code it just gives this crazy error.

Fix:
Make sure to name your package, class, function/method or variable with a Alpha character, _(underscore), or $(dollar sign).

Bad Code:

package 1084_error
{
class 1084_error {
function 1084_error () {
var 1084_error:int = 123;
}
}
}

Good Code:

package error_1084
{
class error_1084 {
function error_1084 () {
var error_1084:int = 123;
}
}
}

P.S.  It is probably not a good idea to give everything the same name as in the examples above.

AS3 Error #1084 will rear it’s many heads according to the particular syntax error at the moment. I will post every variation of this error that I can find.

Once again Happy Flashing