I have some classes: LowA, LowB, LowC, SpaceShip, that all subclass BaseChar. How can I instantiate one of the subclasses by using a string for the name. (I have been trying to get this to work for a couple of hours now). For example, the typical way that I have been instantiating the subclasses:
I create a Sprite in a subclass, add it to the stage. Now I need to target it from another class, but I am going wrong somewhere. This is shorten code, so hope I did not delete some important parts. But you should be able to follow the basic structure.
In a previous thread I asked a question about setting the width and height of a sprite subclass in its constructor method. One of the responses has puzzled me since I read it:
"Setting width and height only makes sense if you're adjusting the width and height of existing content, and the Chart (Sprite) has none at that point."
I don't understand that; what if you're adding children to the sprite that depend on those dimensions?
Here's a simple app which draws a red circle inside of a blue box which demonstrates my confusion as well as one other issue. The full questions are at the bottom.
Main.fla: import Box; var myBox:Box = new Box(200, 200);addChild(myBox);myBox.drawCircle();
[Code].....
Question 2: In this example, the dimensions of Circle are based on the width of its parent Box sprite. Is there a more elegant way to pass the dimensions to the circle? I ask because in my actual project (a chart) the plot area contains a lot of screen locations that must be passed around when I add new objects such as grid lines and markers and passing around the coordinates as parameters seems awfully messy. I'm just not sure how else to do it.
Now how is it that I can add the variable SPRITE which is a Sprite in the OBJECT_square class to the display list of MAIN class? I've tried addChild(SPRITE) and super.addChild(SPRITE). If everything works I should see a red square somewhere on the screen but right now its all blank, except for the text drawn in the MAIN class.
Basically I want it so i can just make a new OBJECT_square and it will draw itself without any more instructions from the MAIN class.
I currently have a button that triggers an event merging the movieclips on stage into one sprite, and passing it to a printer class. The printer class looks as follows:
ActionScript Code: public class Printer { private static var printJob:PrintJob = new PrintJob(); private static var printJobOptions:PrintJobOptions = new PrintJobOptions();
[Code]....
The problem is that when clicking the button, the stage gets a white rectangle in the upper left corner that can't be removed!
I'm running into the situation where I can't instance a SubClass in the above SuperClass because the SubClass is extending from the SuperClass.
I get stack overflow. Fair enough, right?
Well, I want to add this SubClass to the display, and the only way I know how to do that is through addChild(). To addChild() I need to instance the SubClass.
I can't put any visual display instance or events in this subclass because it's currently null and extends is keeping me from doing so. It's great cuz I can share all the goods, but now I'm stuck dancing inside functions because I can't use events on the main "timeline" of the null SubClass.
I'm playing around with some classes from my Learning AS 3.0 book in an attempt to understand them. I have a main (document) class, and a class called NavigationBarXML.
Because the buttons for the nav bar are all set up in the subclass NavigationBarXML, I would like to position the nav bar relative to the stage (think btn1.x = stage.stagewidth - 50) from within this class. I understand that you cannot deal directly with the stage from a subclass and that you must add it to the display list before you can reference the stage from within this class.
How would I set up the main class so that I can reference the stage from my subclass so that on browser resize, my nav bar is positioned relative to the stage?
In my flash document, I have a movieclip drawn on the flash stage (put there myself, not dynamically). I want to use this as a holder for an external .swf. I am using a sub-class to run the loading script. I pass the stage reference to it as the variable "theStage". It has no trouble loading things directly to the stage, but it can't find my movieclip for some reason. I have exported the movieclip for actionscript in the symbol properties panel and have given it an instance name.I've tried theStage.myMovieClip.addChild(mySwf); and suchlike, but always get this error message in output:ReferenceError: Error #1069: Property myMovieClip not found on flash.display.Stage and there is no default value.at MethodInfo-206()Some more information: It works from the main class without any trouble.
Is there a way to tell flash to instantiate a Stage subclass called "TheStage" instead of the default Stage class as root/parent of my document class? public class TheStage extends Stage{ //code }
Then when I do "DisplayObject.stage" I want it to return the instance of TheStage instead of the default Stage insteance. I want to do this so that I can override the addEventListener method of the Stage class. So if I call DisplayObject.stage.addEventListener I can execute my own code routine. Is that possible and how?
Can I access a static variable of a subClass' subClass? I don't want to instantiate it, just looking to get the variable because it has already been initialized by the subClass.example:
package { public class A extends MovieClip { private var classB:B = new B();
I'm sure you're expecting me to have forgotten to use addChild. I wish it was that easy. I will say I'm very new to AS3.0. I have a movie clip in my library that contains a small PNG file and a text label. The linkage properties are: Class: shapes.HorizontalIcon, Base class: flash.display.Sprite.[code]As far as I can tell this should work. There are no errors. The trace statement above shows up in the output. The parent sprite is also an item from the library. It shows up on the stage. I tried adding a random TextField to the parent sprite it showed up on the stage just fine.Something isn't working right, but I don't know where to start debugging this.
ActionScript Code: var MapBtnArray:Array = []; var MapBtnSprite:Sprite; var i:int;
[Code].....
I'm using to code above to create several sprite on the stage, but when I click on the sprite, the index of each trace work just fine (output of J is according to the target i click); however MapBtnArray[j].x keep equals to "0"
I want the coordinate of the sprite on stage, how come what i get is "0" instead?
Loading a Sprite or MovieClip from the library to the Stage is simple. You just export the symbol and do the following code:
var mySp:Sprite1 = new Sprite1(); addChild(mySp)
assuming the exported sprite is called "Sprite1" and the base class is flash.display.Sprite
But what if you have many sprites and want to encapsulate this into a function with the sprite name passed as a string? What would the code in the function look like? Somehow you have to cast the string as the name of the sprite class defined in your export but I'm not sure how. I've seen a sample using the "as" keyword but try searching "as" in the help you you don't get much help.
Code: function loadSpriteFromLibrary(sSpriteName:String) { //load the sprite with an exported name passed into sSpriteName onto the stage //what would the code look like? }
I have a Flash website that I have tested in various browsers on my laptop, and it looks fine. I tested it on another PC in Firefox 3.6.8 (same version as my laptop) but for some reason, there is a sprite missing from the stage. On the same PC, the website looks fine in IE8. The vanishing sprite aside, the whole site is kind of sluggish in Firefox. The PC is kind of slow and old, but I can't see why that would cause images to vanish.
I'm making an action game and I'd like to know what should be the maximum size of the stage (mine is 660 x 500).Also I'd like to know how big a game-sprite should be. Currently my biggest sprites have a size of 128 x 128 and I read somewhere on the internet that you should not make it bigger because of performance issues.
If you want to make e.g. big explosions with shockwaves even 128 x 128 does not look very big. What's the maximum size I can definitely use for sprites?
I'm trying to get a simple AS3 app up and running, and for some reason, I cannot get a sprite to show. At this point, all I want to do is get a red sprite to fill the stage.
public class Main extends Sprite { public function Main():void
I'm making an action game and I'd like to know what should be the maximum size of the stage (mine is 660 x 500). Also I'd like to know how big a game-sprite should be. Currently my biggest sprites have a size of 128 x 128 and I read somewhere on the internet that you should not make it bigger because of performance issues. If you want to make e.g. big explosions with shockwaves even 128 x 128 does not look very big. What's the maximum size I can definitely use for sprites?
var sp:Sprite = new Sprite(); sp.graphics.beginFill(0xFF88CC); sp.graphics.drawCircle(0, 0, 50);
[Code].....
however, I realize even tho im looping that addChild method, its still adding sp, so do I add a new naming convention in the loop, or should I be adding these instances to another display object.... this seems like such a simple thing to do yet I cant figure it out, I also want to randomize the x and y, but this first seems to be the issue I need to address.
var MapBtnArray:Array = []; var MapBtnSprite:Sprite; var i:int;[code].....
I'm using to code above to create several sprite on the stage, but when I click on the sprite, the index of each trace work just fine (output of J is according to the target i click); however MapBtnArray[j].x keep equals to "0".I want the coordinate of the sprite on stage, how come what i get is "0" instead?
I am creating an AIR nativeWindow. I am adding two children, an HTMLLoader and a Sprite. The child Sprite has two children, a TextField and a Sprite that will be used to draw. I have set stage.scaleMode = "noScale" and stage.align = "TL", which the HTMLLoader seems to respect. However, the child Sprite scales its children whenever I set a height.
public function BaseWindow(){ var winInit:NativeWindowInitOptions = new NativeWindowInitOptions(); winInit.type = NativeWindowType.NORMAL;[code]..........
How do I prevent the distractor Sprite from scaling its children?
I have a map with various regions as movieclips. When you mouse over a region, a sprite appears containing xml data. Among this data is a hyperlink. I want the sprite to stay on the stage until one of two things happens:
- you mouseout of the sprite - you go to a new region
That seems to be the problem. I've successfully coded the program to remove the child if you mouseout of the sprite. But if you go to a new region, it makes a new sprite and now you have two sprites with xml data on the stage! If I remove the child when you mouseout of the region, then the sprite won't stay on the stage for you to click the hyperlink. How can I make the sprite stay on the stage until:
- you mouseout of the sprite - you mouseout of the region IF you aren't on the sprite
I have the following code: Code: btn.addEventListener(MouseEvent.CLICK, select); function select(evt:MouseEvent):void { addEventListener(MouseEvent.CLICK, unselect); } function unselect(evt:MouseEvent):void { removeEventListener(MouseEvent.CLICK, unselect); } The idea is to be able to select the "btn" sprite and while it is selected you can click anywhere on stage to deselect it. I thought this would work but somehow after a single mouse click it also executes the unselect function. Since I add this function after the mouseclick I do not understand why it is doing this. Is this not the way to do such a thing?
For the life of me I can't work out why this script is not working: In the library are two movieclips: pink_sprite and green_sprite each of which has a attached class pinkSprite and greenSprite. These classes in turn are extenders of the hitTest.as class below.