Flash :: Timeline Code To Object Oriented Code - Access Instances Already On Stage
Jan 12, 2011
As stupid as my question might sound, i have spent the last 2 weeks reading oop books; but could use some guidance. I have a flash project that is basically a supped up slide show. On the stage i have the following: main_mc (instance name = images_mc) = movieclip which holds "pictures" ui1 (instance name = ui1_mc) = user interface that allows user to draw on picture (when drawing is enabled) ui2 (instance name = ui2_mc) = activates invisible hit areas (buttons) on select pics, when hit area is clicked, we jump to another pic in the main_mc.
I accomplished all of this on the timeline, but am updating the code to OOP. I am having A HELL OF A TIME trying to figure out how to store references to the instances (images_mc etc..), so i can control them from varying class files. I have found it is easy to control the instances from the documentclass, but not from unrelated class files. Example: images_mc.stop(); works in document class; but ovieclip(Parent).images_mc.stop() doesn't seem to work from any class file.(ui2 class file for example);
Ive gone through the Object-Oriented Scrollbar tutorial on [URL]. Its working great and I have multiple buttons inside of the moveclip it lives within. The problem occurs when I create another one on the same page. I have put one on frame 1 and the other on frame 5 so that I can select a 'category' and the scrollbar movieclip changes to the relevant buttons.Ive duplicated the movie clips and changed the instances accordingly. I keep getting these errors in the Output panel when playing my swf;TypeError: Error #1009: Cannot access a property or method of a null object reference. at as3_movieplayer_fla::MainTimeline/frame1()and when I click the like to the second category it comes up with this error;TypeError: Error #1009: Cannot access a property or method of a null object reference. at as3_movieplayer_fla::scrollbox_1/thumbUp()Not really sure what im doing wrong - or even what these mean!Here is the code from my main actions layer;
how to make an Object-Oriented Scrollbar. Its working great and I have multiple buttons inside of the moveclip it lives within. The problem occurs when I create another one on the same page. I have put one on frame 1 and the other on frame 5 so that I can select a 'category' and the scrollbar movieclip changes to the relevant buttons.Ive duplicated the movie clips and changed the instances accordingly. I keep getting these errors in the Output panel when playing my swf;
TypeError: Error #1009: Cannot access a property or method of a null object reference.at as3_movieplayer_fla::MainTimeline/frame1() and when I click the like to the second category it comes up with this error; TypeError: Error #1009: Cannot access a property or method of a null object reference. at as3_movieplayer_fla::scrollbox_1/thumbUp()
I'm looking for a way to have my main timeline code interact with code inside of a symbol.I'm tying to get my timeline inside the symbol to gotoAndPlay(10) when something happens in my main timeline code.
Is there a way to make code on the timeline and code in a separate AS file communicate with each other?I have two buttons, a yes button and a no button.I have a confirm box which is a movie clip. In the movie clip I have the two buttons on it and code so that every time one of the buttons is clicked it runs a function.I have the rest of my code for the movie (so the code to make the confirm box appear) on a separate AS file.Is there a way I can define the functions on the movie clip and run the functions with the separate AS file?
MCtext is a collection of text with frame labels. It's labeled as MCtext
The menu buttons tell MCtext to play the frame label as the button clicked. This *used to work*, but Flash was laggy as hell so I updated it. Now the same code returns #1009: Cannot access a property or method of a null object reference. at MCmenu/itemClicked()
Code: function itemClicked(butn:Event):void { parent.MCtext.gotoAndPlay(SomeArray[butn.currentTarget.label); }
I've tried just using a frame number, but still the same #1009
I've tried the Script Assist to target the MC on the stage: using root.MCtext... still the same #1009 using this.MCtext... returns a #1010
I had a 2 frame setup with some actionscript for each frame. Tried to move it all into one class file and a
1. frame .fla. ; Hiding and showing the resp. moviclips when i virtually move from frame 1 to frame
2. Now I get these ...Error #1069: Property edit_panel_mc not found on flash.display and there is no default value. errors or..
when i thought beeing clever adding the stage. prefix ReferenceError: Error #1069: Property edit_panel_mc not found on flash.display.Stage and there is no default value. The mc's are on the stage... i have a single .as classfile. Why cant I reference them? or how should i do it/ what should i do to change it from beeing .fla script to class script.
I see a lot of tutorials about coding actionscript 3 when they use all the code in a Class.I keep thinking every time why they use it in a class, instead of using actionscript on the stage.why it is more functional to code a class instead of putting code in the stage actionscript?
Supose I have a MovieClip called Egg and I have a lot of Egg instances with unique names (required) or without names.What if I need to write a code who break all these eggs refering to the Main object in Library? Instead to add code for every egg with every name in the Stage.
im new to flash actionscript and i am trying to create a very simple game. in this game i have about 50 walls that i want to stop the player if they collide with it. i cant figure out how to assign the same code to multiple instants and im still fuzzy on alot of the terms flash programmers use but im learning.on an unrelated note i am also having the player push the ball and when i add a collision.block to the ball when it hits the wall it goes right through it because of the ball repositioning itself based on the players location.
In Flash Builder, for objects, properties, variables and such where your cursor is on it, the editor highlights all instances of that name in the code with a grey box. This can be very distracting and I was wondering if there was a way to turn it off or if there is a hot key to disable it.Another things that is very distracting are the mouse hover popups, although apparently there's no way to disable those :
how I access variables in a frame on the stage with code from a frame within a movieclip?(basically passing variables from a stage frame to a movieclip frame)
I can access the targetObj instance inside the document class, but when I try to access it in another .as class,get this error: Access of undefined property targetObj.
Here i'm actually not talking about a problem but rather wanted to raise a discussion thread. (Kirupa you may also move this thread to some other more relevant section. Few of my good colleagues till prefer writing code on the Flash timeline, on the frames (code as bigh as 100-150 lines), rather than using external AS files, when rest of the world has reached to AS 3.0 which is close to Java (OOP).I'm just wanted to know the big benefit of writing the code on the frames. I know that it is highly un-manageable and I have personally faced many instances of code not initializing, or behaving strange on a frame.
I'm looking for a workaround to the "AdSense does not let you choose only images but no flash" issue. I'm rather a newbie to JS, but is there any way for one script to prevent other scripts embedded in a site from detecting the presence of the flash plugin? Even if it doesn't work with AdSense, it would be nice to know if there's a hack to do this that might work in other settings.By the way, I suppose I wouldn't care if it failed to work on IE or obsolete browser versions.
I have created a game in flash, and due to the nature of the game, I have many movieclips placed on the stage manually in Flash CS4. They are not programmatically added as children to the stage, and so I am having difficulty getting access to them in the document class. So far the only method I have been able to use is to do stage.addChild(active_area); (for example), but there are many movie clips, all very differently named, so this method seems incorrect.I've discovered that my MovieClips are not children of the stage, but in fact MainTimeline, as when I for loop through stage.getChildAt(i);, only one child, root1, is traced out. How can I access movieclips that were placed on the stage in the timeline from the document class, without having to manually add them as children to the stage? So it looks like my problem wasn't that I couldn't access the MovieClips, it was that I wasn't modifying the MovieClips' values, so I wasn't registering any change in them.
Here is the code after I fixed it: function manage_cursor(e:Event):void { prevX=currX;
Got to the point where the hole in my AS3 knowledge is getting large!Realising I have confusion about the relationship of:Body of code on first frame of AS3 file.(Which I have so far used to create instances of library objects using addchild and make calls to class code).Is this code called the document code? What do people call it?Numerous classes linked together by extending each other etc.Library objects (usually graphical objects)Should it be done differently? have the following problems due to lack of understanding:Addchild complicated from a class but straight forward in main body code.Cant call functions on the main body code from classes, because class code does not know the main body code exists?
I had some code directly in the timeline that accessed/modified properties of some movie clips. I then did the proper thing and moved the code to a Document class. I put the code that was formerly in the timeline into the document class constructor.
The issue I'm having is that if I access the movie clip properties "too soon" it reports that they are null. If I put the code in a timer event callback for half a second or so, or put an addFrameScript call with a frame of around 8 or higher, the movie clip references are valid and it all works.
So for some reason by the time the code in the timeline gets called all of the movie clip instances are valid. However, when inside of a document class constructor, they are not. I've tried using the ENTER_FRAME event callback but the movieclips still aren't ready.
The code is supposed to change some movie clip properties based on some loaderinfo parameters, so I do kind of need to set those properties before anything starts animating.
Is there any method with which I can get to know which of the two movieclips I'm using is lying above or below in the timeline 'layer' arrangement in flash.
what I'm asking is if have two movieclips 'a' and 'b'. One in layer 10 of timeline of flash professional and 'b' on layer 1. Will be able to change the index order using pure as3 code to visually keep the movieclip on the 10th layer on top of the movieclip on 1st layer?
i want all of my buttons to have an identical code and being able to tell my variable on _root to get the instance name of the clicked button. that possible?
I'm creating a navigation menu, as the cursor hovers over each of the menu items I want them to behave in a certain way. They all behave the same way but obviously the text is different.. So basically I was wondering what's the best way to apply the same code to multiple instances, without repeating the code?
I'm looking for some help converting as3 code to pixelbender code in an attempt to improve the performance of my application. This as3 code goes as follows. I scan through the Number values of a bytearray in chunks. Lets say this chunk lenght was 100 numbers I read 2 numbers (left and right) and try find the maximum values. The numbers in my bytearray are PCM data so there is millions of them and this code can often take a long time to execute, especially on a low spec machine.
The whole aim of this is to render a waveform as quickly as possible. I know very little about pixel bender. I can basically make a new file and create a shaderJob of it in flash but I'm really uncertain how to approach this...
I would like to load movie clips from the library to the stage.How can I load them with some code on them? I mean load them already with onClipEvents on them, as if I added them myself to the stage..
I have 10 different map symbols on the stage. I have 1 class called ContinentView which is linked as the base class to each of these 10 map symbols. All I want to do is duplicate the same map symbol and miniaturize it when the map symbol is clicked upon. Thus, 2 symbols will be on stage prior to clicking, 1 large and 1 small. The 10 different map symbols have names such as zone1, zone2, zone3...etc. all the way up to 10. I know that I can do var mini:MovieClip = new zone1() as MovieClip; but thats ONLY if I click on the 1st map symbol and vice versa. This means I would have to do an if tree or several cases in a switch statement to check the id or name of the clicked symbol (e.currentTarget.name or something)...I want to avoid that and be dynamic.