Flash :: MovieClips Don't Keep Their Base Class If Childed To A Movieclip That's Added Dynamically
Dec 19, 2010
I have a holder movieclip, its base class is foo.[code]I put a trace in the constructor of bar so I can tell if it's being loaded properly, and when I drag out foo onto the scene and run the clip, all the little bars within it fire off correctly. However, when I add it to the scene dynamically, such as like this in the Main class:[code]Suddenly, all the little bar movieclips within foo revert to regular old movieclips and don't fire. What's interesting is if you typecast one them as Bar at some point, and their normal class is set to Bar (within the movieclip itself, rather than base class), it works and the constructors all fire, like this:[code]However, if you want multiple different types of Bar clips, and give each a base class of Bar, this won't work. They all spawn as generic movieclips. It DOES work if you go through and typecast them as either Bar1 or Bar2, but that means in practice you would have to try to typecast every child as every top-level object type every time you added the clip to the stage. You also can't have a bunch of movieclips of the same type since Flash doesn't allow it, so each one needs to be a new class, and have that class typecasted when the parent is placed on stage. Kind of defeats the purpose of OOP.
This seems to be a bug in Flash itself, but is there any way to fix it?You can download an example file here with a couple extra traces to show off what's going on: url... It still has its children, they're added and displayed, but their type changes to MovieClip, ignoring the base class.
package { import flash.display.MovieClip; public class Foo extends MovieClip { public function Foo() {
[code]....
Suddenly, all the little bar movieclips within foo revert to regular old movieclips and don't fire.[URL]It still has its children, they're added and displayed, but their type changes to MovieClip, ignoring the base class.
I then, in the Flash document, create a movie clip which has this class set as the "Base class" in the properties. However, if I then do this.updateText(); in the movie clip's frame script, it complains
TypeError: Error #1006: updateText is not a function. at miranda_fla::MenuButton_3/frame1()
Why doesn't it work? I know the class is read and compiled, because I had an error there which was reported.
I'm more of a Flex than Flash developer so I'm hopeful this is something easy. Short story, I have a scrollpane in a flash-created swf. In my pure AS3 project I dynamically create menuitems within a new movieclip.
I have a question about Tweening for dynamically added movie clips: In Main.as constructor file I added a movie clip: addChild (new Arrow()); in Arrow.as I want the new arrow to tween as soon as it is added by Main.as file.
To do so, in Arrow.as I put this code: import fl.transitions.Tween; mport fl.transitions.easing.*; ... private function onAddedToStage(event:Event):void { tween= new Tween (this, "x", Regular.easeInOut, x, 400, 60, false); }
But "this" seems not to work because the file simply adds my movie clip to the stage without tweening or error messages. What I should put instead of "this" in the Arrow.as? Or any other options to tween this movie clip?
1) I want to count the number of movieclips(in different class) added. That is, may be I have 10 clicks, how many bigfish and smallfish are created. What function is suitable to call for doing this.
2) I have a problem on the hittest, it comes out "no hit" only but I still can see the movieclips overlap. And if I want to modify that only check whether smallfish is overlap with bigfish, what should I do? Also, there are functions inside the movieclip itself to give motion.[code]
I have a Actionscript base class already created but when i type in the location for it i get back the file cant be found error.This is the url for my code
gamegamesmygameutilitykeybinderChanger
Now i have tried it without the as3 format but it just seem to find this file.
I'm working on a iPad game in Flash Pro CS5.5 and it was compiling correctly. Now I have marked a lot of MovieClip classes for Export for Actionscript so they use a custom MovieClip subclass as base class.
When publishing the movie I get a SWF without any actionscript in it (publishing takes also a lot less time then before). Now I have a suspicion this is because there seems to be a limit on the number of Export for Actionscript you can have?
The problem is that for iPad I can not split my .fla to create multiple swfs; since swfs that you load via the main document can not have any ActionScript in it (I tried already to put all the sounds in a seperate SWF with export for actionscript turned on, that didn't work).
I need to work in as2 and I would like to add a blank movieclip to the stage, then the user can draw in it, but but only within certain confines. So I tried to set a mask but its just not working. :-(
Code: function saveAction(evt:MouseEvent):void{ var choice=evt.target.name; var inputText:String = saveName.text; }
I have this and I am trying to make a variable from the contents of the input box. Simple ya? The issue is that it is a child of another clip that is being added dynamically, so it doesn't think the input exists. How do I declare the input? How can I target it's contents? Also I have a remove function that is meant to remove this same parent clip.
Code: function closeSaveWindow(evt:MouseEvent):void{ removeChild(saver); } 'saver' is a variable created in another function, so I think there is a scope issue there. To try to fix that I declared 'saver' as a movie clip as a global var.
this["recipe"+i] = new recipelistname(); this["recipe"+i].buttonMode = true; this["recipe"+i].recipeid = i;
[Code]....
The problem is that the movieclip rotates around the center. The textfield inside the movieclip is starting at 0,0. But it still rotates around the center, how can I make it rotate at 0,0?
I have this Fla which contains a symbol that is linkaged to a certain class that is in my project. That class inherites a base class named CMovieClip which resides in one of the libraries that is in the class path (and inherites from MovieClip).Of some reason, every change that I do in the base class doesn't seem to influence the resulting linkaged class, much as if this library is cached somewhere that I can't feagure out.I tried to create the same conditions in a separate Fla but it does not repeat the issue.I tried to duplicate the symbol but the issue isn't solved that way.
I have two SWF files which I shall call container and slave. The slave file contains a movieclip that extends from a class I shall call base. base extends MovieClip and is compiled into an SWC. slave includes this SWC as a runtime library, while container includes it as merged (and does reference it so it should be compiled into the container SWF).
The container loads the slave like so:
bgURLRequest = new URLRequest(slaveUrl); var context:LoaderContext = new LoaderContext(false, new ApplicationDomain( null ), SecurityDomain.currentDomain); bgLoader.load(bgURLRequest, context);
When this loading happens, I get the error that class base was not found. I suspect this has something to do with the presence of the ApplicationDomain in there. I'm not sure what it does exactly, since I didn't write this loading code myself (but I do know that it's there for a reason so it can't be simply removed).
I have a 20 frame MovieClip in the library with a Class attached to it. There is nothing in the Class except the usual stuff pertaining to MovieClips with a Class (import display.movieClip and so on). The first frame in the movieClip timeline is a stop() command. I only want the clip to play sometimes. So in the main document timeline, I add the clip from the library as such: Code: var testClip:SampleClass = new SampleClass(); addChild(testClip);
But with this instance, I also want it to begin playing. However the following is not working: Code: MovieClip(testClip).play();// doesn't work? testClip.play();// also doesn't work?
But, if I delay things a bit it DOES work - like this: Code: Tweener.addTween(testClip, {y:0, time:.5, onComplete:function() {testClip.play()}}); // works fine, clip begins playing Why delaying the play command works, but telling it to play on instantiating doesn't?
I have a program where I have multiple classes derived from a base class. I want to take all instances of the different subclasses and put them into an array. Is there a way I can search for anything derived from the base class?For example, right now a get the number of children, then see what they are, so:
for (var i = 0; i < this.getNumChildren(); i++) { if (i is "type")
I have a MovieClip, that I'm going to add to the display list with my document class at runtime beacuase there will be many instances of it. The MoviClip "box" has 3 more MovieClip instances inside it,and each of those three have two more.It looks like this:
ok. so here's the thing..i have a class from where i created an array with the time, name, and position of each movieclip data.. and wanted it to go through each one and execute at a certain time.. So i tried something like this:
[Code]...
the first part works well.. but its when i try and add it to the stage that i get confused.. i tried something but i think its wrong.. can anyone help me? Basicly i want flash to get the array.. use index 1 for the name.. index 2 for the x position and index 3 for the y position.. but all this name referencing in as3 really confuses me.
i have a class from where i created an array with the time, name, and position of each movieclip data.. and wanted it to go through each one and execute at a certain time.. So i tried something like this:[code]the first part works well.. but its when i try and add it to the stage. Basicly i want flash to get the array.. use index 1 for the name.. index 2 for the x position and index 3 for the y position.i have already linked the movieclips on the stage
If I've already specified in the symbol's package which class the symbol's class extends, do I still need to specify the base class in the symbol properties dialog?
when I create a new flash project, I would like to put the source files in /src/ folder.When I try to add the base class to my project, flash can't find it.I've added the folder "src/" to source paths, in flash preferences.
I have a class "BaseMenu", which, needless to say, is a base class to menus that have eventlisteners. When I trigger the function to remove the menu itself, I don't know how to remove these eventlisteners, since their respective functions are in the extended classes, not in "BaseMenu".
Code: //... public function BaseMenu() { this.cacheAsBitmap = true; alpha = 0; y = 400; [Code] .....
So I know you can assign a base class to a library definition within the Movieclips library information field but If I have 30 items in the library and I change the Base class this becomes a pain in the ass, can this be done programmatically when I instantiate the library definition?
var new_shiz:MyItem1 = new MyItem1(); // Needs to have a generic base class of MyItem
For some reason Adobe doesn't allow us to change the size of the handle in the default slider component. This handle is small and hard to click on quickly. If you try to increase the size of it graphically it just gets resized back down to 13x13 pixels. I've looked into the Slider.as code found in:
Program Files(x86)/Adobe/Adobe Flash CS4/Common/Configuration/Component Source/ActionScript3.0/User Interface/fl/controls/Slider.as
And found that on line 803 there is the code thumb.setSize(13,13). I tried changing that to 60,60 but it doesn't change the size of the handle. I don't know much about classes and I didn't think you had to compile these. I thought that in Flash when you clicked on the Components button that it loaded these classes in at that point but I must be wrong.
ActionScript Code: override protected function configUI():void { super.configUI(); thumb = new BaseButton(); thumb.setSize(60, 60); [Code] .....
im getting an error message that flash cant find the base class. i put the as file and the fla file in the same folder, isnt that the first place in the classpath?
I have a symbol in the Library with a Base Class that extends the MovieClip Class and adds some additional functionality. I want to be able to export this from the Library by right clicking on the symbol and selecting Export SWF. I was hopping this would essentially give me the same results as if the symbol contents was on the main timeline and I had declared the Base Class as the Document Class. When I import this SWF using the Loader Class it seems to loose all of Base Class functionality and think of itself as a MovieClip.
Looking at the below sample code, the alpha property is correctly set but the param1 getter is unaccessible. What the hell is going on?