08.31.07

Flash CS3 / Flex 2 AS3 Error #2148

Posted in Computers, Error, errors, Flash, Flex at 5:48 am by Curtis J. Morley

ActionScript Error #2148:
SecurityError: Error #2148: SWF file file:///C:/Documents and Settings/UserProfile/Desktop/flexstore/bin-release/flexstore.swf cannot access local resource myFile.swf. Only local-with-filesystem and trusted local SWF files may access local resources.

Description:
ActionScript Error #2148 can be caused by a number of reasons. If you are using Flex please keep in mind that the bin directory is a special directory that the Flash player allows SWFs ( and other files ) to load from as long as the file is stored in this directory. It will also allow a loaded swf to access network resources (a remote HTTPService call for example). If these files are placed anywhere besides the bin directory, the Flash Player prevents the file from accessing any external resources. You can allow for external access by changing the settings within the FlashPlayer or within Flex. These solutions are listed below

Fix 1 :
If you're loading in XML or other files from a remote sever that isn't hosting the SWF too, make sure you create a crossdomain.xml policy, and put it on the root of your webserver. If you haven't heard about a cross domain policy or need help creating a crossdomain.xml file click the link and I will show you how to create a crossdomain.xml file. View my tutorial on How to Create a crossdomain.xml file and visit the links on the bottom of the page to learn more.

XML Code:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policySYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.curtismorley.com" />
<allow-access-from domain="curtismorley.com" />
</cross-domain-policy>

Fix 2:
Within ActionScript you are now able to specify the cross domain access from within the code. I won't get into the guts of this one but if you want to learn more view the Flash / Flex documentation or Adobe LiveDocs - Security Chapter or get Joey Lott's book ActionScript 3 Cookbook By adding this code you will get rid of ActionScript Error #2148 If you are using https:// you will need to use allowInsecureDomain() as shown below. If you are using a local file make sure to target it correctly(i.e. c:\myFolder).

ActionScript Code:

flash.system.Security.allowDomain("http://www.curtismorley.com");flash.system.Security.allowInsecureDomain("http://www.curtismorley.com");

Fix 3:
One hack to get rid of ActionScript Error 2148 is to add these arguments to the compiler (via Properties - Flex Compiler) : -use-network=false . Beware though this will effectively change your cross-domain security.

Good Code:

-use-network=false

Fix 4:
Make sure your Global Security Settings in Flash Player allows local access to the directory your SWF/XML is running from. At the Global Security Settings in Flash Player click on Edit locations >> Add location and then either type in the new location your SWF is at (i.e. c:\myFolder) or browse for the file or folder. Shut down Flash/ Flex and all instances of the Flash Player(including browsers), and then try again. This will eliminate this ActionScript Error #2148. This solution only works for you on your computer. If you cahnge computers or change locations on the web please refer back to Fix 1.

And now you know 2 ways to fix and 2 ways to circumvent ActionScript Error #2418: Security Error

Happy Flashing

08.30.07

Flash CS3 / Flex 2 AS3 Error #5000

Posted in Error, errors, Flash, Flex at 11:54 pm by Curtis J. Morley

ActionScript Error #5000: The class 'com.cjm.MyObj' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.

Description:
This little error will pop up when you have used the linkage in your library and have not targeted the Class properly.

Fix:
Make sure that in your custom ActionScript Class that you have imported the MovieClip Class properly.

Bad Example:

package com.cjm{
public class MyObj extends MovieClip {

Good Example:

package com.cjm
{
import flash.display.MovieClip
public class MyObj extends MovieClip {

So import those classes properly to fix ActionScript Error #5000 and Happy Flashing

Flash CS3 / Flex 2 AS3 Error #1026

Posted in Computers, Error, errors, Flash, Flex at 10:33 pm by Curtis J. Morley

ActionScript Error #1026: Constructor functions must be instance methods.

Description:
You will get Flash / Flex Error 1026 if you have assigned the constructor of a class to be static. What you most likely wanted to do was create a static method within your class that can be called directly from the class itself rather than from an instance of the class. You are probably trying to create something like the Math.round() method within the Math class. This is a static method and can be called directly from the class.

Fix:
Remove the keyword 'static' from the constructor function within your class.

Bad Code:

public class MyStaticMethod
{
public static function MyStaticMethod()
{
public static function theRealStaticMethod (inputString):int

Good Code:

public class MyStaticMethod
{
public function MyStaticMethod()
{
public static function theRealStaticMethod (inputString):int

I hope that you didn't bang your head against the wall with AS3 Error 1026. It is an simple ActionScript Error to fix with a strange description.

Happy Flashing

08.29.07

Flash CS3 / Flex 2 AS3 Error #1172

Posted in Flash at 5:03 am by Curtis J. Morley

ActionScript Error: #1172

Description:
This error is encountered when Flash/Flex cannot find your Class.

Fix:
Make sure that the targeting is correct.

Bad Code:

import com.cjm.everseString;

or

import com.cjm.reverseString;

Good Code:

import com.cjm.ReverseString;

So now you know how to fix AS3 Error 1172

Happy Flashing

08.25.07

Flash CS3 / Flex 2 AS3 Error #1093

Posted in errors, Flash, Flex, quicktip at 5:42 am by Curtis J. Morley

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

thePlayer.source = “Domain_video.flv”;

Posted in Flash at 12:38 am by Curtis J. Morley

for (int i=0; i&lt;5; ++i)
{

    cout &lt;&lt; "smap!" &lt;&lt; endl;}

import flash.events.EventDispatcher; import fl.video.*; thePlayer.source = "splash.flv"; This is the part that is kinda funky var theCuePoint:Object = new Object(); theCuePoint.time = 0.001; theCuePoint.name = "main_video"; thePlayer.addASCuePoint(theCuePoint); function splashCuePoint(evt:MetadataEvent):void { loadVideo(); } thePlayer.addEventListener(MetadataEvent.CUE_POINT, splashCuePoint); function buttonClick(evt:MouseEvent):void { loadVideo(); } theButton.addEventListener(MouseEvent.CLICK, buttonClick); function loadVideo():void { thePlayer.source = “main_video.flv”; thePlayer.play(); theButton.enabled = false; theButton.visible = false; } This is the text.

08.22.07

Added new info to ActionScript Error #1078

Posted in errors, Flash, Flex, quicktip at 5:43 am by Curtis J. Morley

I added a few more examples and a little more definition to ActionScript 3 Error #1078. There are now three code examples instead of just one and more in depth explanations to this error. I hope this helps you solve AS3 Error #1078.

ActionScript 3 Error #1078

08.21.07

Flash CS3 / Flex AS3 Error #1086

Posted in errors, Flash, Flex, quicktip at 8:43 pm by Curtis J. Morley

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

08.20.07

Flash CS3 / Flex AS3 Error #1053

Posted in Computers, errors, Flash, Flex, quicktip at 11:01 pm by Curtis J. Morley

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.

08.19.07

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

Posted in errors, Flash, Flex, Loops at 11:54 pm by Curtis J. Morley

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

« Previous entries Next Page » Next Page »