Actionscript 3 :: Created External As Files That Extended A Class Such As Sprite?
Jun 11, 2010
i've only ever created external .as files that extended a class such as sprite. now i just want to create one that doesn't extend anything and call it from a frame script.
I have 1 class (that is extending a UIcomponent) that is representing a component. In that component I create different instances of another class that is also a UIComponent but this class doesn't show up in de first class. I see that it is running and that it has the correct hights but I got the feeling that it doesn't show up with this hights. If I trace I see the width and height is 200 X 200 but there is still nothing visible in my component.
I'm currently trying to find out how to create external files from a SWF/exe/app file created in Flash. Essentially I'm building a program to create templates for levels in a game. The SWF will be run locally (e.g. not online) and will allow the user to add/remove objects to a level of their design. They then need to be able to save the level template (ideally I need to be able to save as a JSON* file, but I'm sure I could get away with just a simple txt file) somewhere on their computer. These templates will them be imported by the game itself (not written in Flash, hence why I need to save the data as a json or txt file), which will then re-create the levels from the data contained in the save file.
I had assumed this would be something that was really simple to do, but I cannot seem to find any tutorials or information on how to create external files. I can find plenty on reading from existing external files, but nothing about actually writing a new file entirely. I have read a few people complaining that non-local Flash SWFs cannot access the user's hard drive for security reasons, but cannot find any information on local SWFs.
If anyone could tell me even roughly what I'm looking for, it would be greatly appreciated. I'm a bit stuck just now haha *I have downloaded the corelib files which allow me to work with JSON files
public class Example { public function Example () { }[code]............
You can see that the two last classes extend the first one, and both have the 'variable' property. In case that I have an instance of Example and I am sure it is also an ExtendedExample OR AnotherExtendedExample instance, is there some way to access the 'variable' property? Something like
function functionThatReceivesAnExtendedExample (ex:Example):void { if(some condition that I may need) { ex.func()
package{ public class Character{ protected var _hp:uint = 50; //Character Health Points protected var _power:uint = 5; //Damage dealt
[Code].....
I`m instancing a Character and a Player in the Main Timeline, all in frame 1. When I use: ""player.attack(character)"" it works fine by itself.
So I added the if (defender._hp <= 0) this.win() which gives me the following error:
1061: Call to a possibly undefined method win through a reference with static type Character.
"defender" is a Character instance, "this" is a Player instance and "win()" is a Player method. I try to call the Player method inside a Character method using the Player instance adding the "." and his method name
Do I really need to define the win() function in the Character class? Is there a bypass to use a subclass method in a parent class method if it`s called from an instance of the subclass?
I created an flv video player using Flash Builder 4. This "BasicVideoPlayer" project is compiled into a SWC that will be eventually be used to create other video players that extend the functionality. One of the features is a view that appears when the video has finished playing that displays a "Play Again" button. This "Play Again" view has its own class, "BasicPlayAgain", that accepts a graphic asset that is exported from a .fla file that contains all of the graphic/UI assets.
In my new project, "EnhancedVideoPlayer", I'm using the BasicVideoPlayer SWC as a library to create a new video player that will add more functionality to the "Play Again" view; specifically it will add more buttons to that view.The EnhancedVideoPlayer uses a default class that extends the BasicVideoPlayer class. The BasicVideoPlayer class has a member called "playAgainScreen" whose type is BasicPlayAgain. The EnhancedVideoPlayer needs to override the playAgain member and recast it as EnhancedPlayAgain so it can control the new buttons properly.
Let's say Class A has the flash.events.Event imported. Now let's say Class B extends Class A. Why in the hell do i need to import flash.events.Event in Class B? It makes no sens at all to me.
The use of library classes confuses me once again. I have the following situation:
[Code]....
I cannot put in any baseclass when using the class, so I'm forced to remove the baseclass. When using only the class I get a whole bunch of errors don't make any sense at all, and still appear even if I comment out all the code in the Page class. comop_padpagesFavorietenPage.as:7: 1152: A conflict exists with inherited definition com.op_pad.pages:Page.help in namespace public.
Is it possible to dispatch event from class that isnt extended class of MovieClip? I created my own class and put import flash.events.Event; import flash.events.*; but when i call dispatchEvent compiler throws error:"1180: Call to a possibly undefined method dispatchEvent."
I have created a class (extends the Event class) for use in one of my projects. If I trace the custom event object in the called function I get 'Event' as the type, but if I trace a TimerEvent, or MouseEvent, etc, I get TimerEvent or MouseEvent... Let me demonstrate:
var c:CustomObject = new CustomObject(); c.addEventListener(CustomEvent.ON_SEND_MESSAGE,fnc); function fnc(e:CustomEvent) {
I've got an external .as file in the same folder as my flash file. In the process of writing the code, whenever I make a change and then test the movie, the flash movie is obviously still looking at the OLD information. I tried using the "Delete ASO Files" on the menu, to no avail.I can' find these ASO files anywhere on mycomputer.Aha! I tried something else. I quit flash,restarted and ran the same script with no changes. It returned the data correctly, but then gave me this unpleasant message:256 levels of recursion were exceeded in one action list.This is probably an infinite loop.Further execution of actions has been disabled in this movie.There are no loops of any kind in the code, which is below.
//This is the Person.as file: class Person { public var HomName:String = "unknown"; public var HomEmail:String = "unknown"; public var HomPhone:String = "unknown"; public var HomSaveFreq:Number = 0;
I created a class, extended the sprite class, and now in the constructor I am trying to set the Sprite's width and height properties which are inherited from the DisplayObject. However, after I set this.width and this.height, and print the values, I get 0 for both.
What the heck is going on? When I view the livedocs I see that DisplayObject has width and height listed as public properties. I have been able to instantiate a Sprite directly, and set the width and height after it's been instantiated, so I don't get it.
package { import flash.display.*; public class ScrollBar extends Sprite {[code].....
Ok, I have spent a little time searching and I can't seem to find an answer to my question, maybe I'm asking the wrong question. here's my situation:
I have a document class called Main.as, this class has variables that instantiate a CreateShape.as class that acts as a superclass. The CreateShape.as class has a protected function that is overridden by other classes (I have a CreateCircle, CreateSquare etc). Those CreateCircle etc classes, use extends to extend the CreateShape.as class, and thus have the ability to override the main method (called newShape()).
I have my main stage, and I have two objects (blocks), these two objects both extend from the "Block" class. The "Block" class is NOT extended from the Main Class.I would LIKE to call a function, in either the "Block" class or in it's subclasses, from the Main Stage Class. The functions will do slightly different things depending which object you are calling the function (Added different things, and different number of things to an array). What is the best way to implement this?
Is there a way to hide properties or methods of an extended class?Ie, I want most of the extended properties and methods to be accessible but I want to hide others and use my own instead (not just overriding).
I'm having some trouble with using a Document class in Flash CS3 that is an extension of another class. When I do this, I can no longer make references to MovieClips with instance names on the stage.Here's an example. I have a class called Minigame that extends MovieClip and then a class Shooter that extends Minigame. So the relationship looks like:MovieClip <-- Minigame <-- ShooterI want to use Shooter as my Document class in the Flash file Shooter.FLA. However, when I do this, I am unable to directly access any instance names of MovieClips on the stage of Shooter.FLA from Shooter.as. In other words, if I try to write the line:var mc:MovieClip = this.instanceName;in Shooter.as, I get the error:1120: Access of undefined property instanceName.
I'm new to AS3 and I'm having a problem with an extended class that uses a URLRequest. I have a basic class called 'imageLoader' that I use for loading in external images
I use flash CS3 on Mac OSX and I'm creating several AS2 projects with .as class files. Everything code-wise is working perfectly. The problem comes when I make a change to a particular class file, save the file, and the republish the fla. The changes are almost never reflected in the published swf. The only thing I've discovered to work around this problem and actually get my changes published is to publish to a different flash player version, and then republish back to the version I really want. Somehow that seems to actually get flash to load the most recent version.
It seems like this might be some sort of flash caching problem, but I have no idea how to tell it to always check for the newest version of the file.
In the Flash app I'm building, I have a "main" SWF that will load a variety of "child" SWFs.
All of the AS3 code for both the main SWF and child SWFs is contained in external .as class files.
In other words, each movie has it's own document class .as file.
There are also a number of .as class files for all of the common elements (e..g, UI buttons and controls).
So - for example - both my main SWF and all child SWFs use the "MyCommandButton" class; the code for this class is in MyCommandButton.as, which all SWFs reference (import).
Here's what I don't understand.
(Let's say that the code in MyCommandButton.as draws buttons that are red.)
First, I compile ALL of the child SWFs.
Next, I change MyCommandButton.as, so that the buttons it draws are blue, instead of red.
Then, I compile the main SWF.
When I run the app (main.swf), I would expect all of the buttons in the main SWF to be blue (since that's what MyCommandButton.as specified when main.swf was compiled), and all of the buttons in the child SWFs will be red (since that's what MyCommandButton.as specified when they were compiled.)
Instead, ALL of the buttons are blue, which means the change I made to MyCommandButton.as affected all of the child SWFs, even though I didn't recompile them.
The problem is class files being cached in external swfs when they are loaded into another swf. (as2-cs3). In a nutshell, we've got a clip on the stage that is linked to a class. You can make changes to the class, pub the swf and everything works fine. When we then load that swf into our application swf, the changes are all lost, and it "reverts back" to a previous version of the class.
package { import flash.display.Sprite; public class MySprite extends Sprite{
[Code]....
and extend that class, if more than one internal classes are defined:
package { public class MainClass extends MySprite { public function MainClass():void{}
[Code]....
ReferenceError: Error #1065: Variable MainClass is not defined.Note that this only happens (as far as I can tell) when the public class of the package extends another class, and multiple internal classes are defined. The internal classes don't even need to be instanced or referenced to generate the error (the bare-bones code above will error out). If only a single internal class is defined, it works fine (no error). Even if the internal class is instanced.
All my custom classes that extend MovieClip simply trace as "MovieClip" when using stage.getChildIndex(i); I'm trying to search the stage to see what objects have been placed and then add them to the correct array. E.g. if I place 5 "Enemies" on the screen, I want to then add them to an array by searching the stage for the "Enemies" class, without naming each one and adding it manually in the code.
I have recently started out with flash oop concepts and was wondering how to do create an instance of an extended movie class without dragging and dropping the clip from the library ....I have figured out this method..
I'm working through actionscript 2.0 tutorials using Flash 8, and I'm getting apparent false syntax alerts from script files containing classes with static properties. The .as files seem to work okay when I run them with corresponding .fla files with the Test Movie option, and the code is copied straight from a Macromedia tutorial pdf manual. [code]...
I have some movieclips on my main timeline with a class to extend these movieclips
[code]...
But the I can't 'reach' the testing function. I get this error: "1061: Call to a possibly undefined method testing through a reference with static type flash.display:DisplayObjectContainer."