ActionScript 3.0 :: Finding Which Class Instance Was Clicked
Feb 17, 2011
I am importing multiple class instances into my document class. They are buttons that I want to load larger images when clicked. The problem I have is that I don't know how to tell class instance was clicked to load the appropriate larger image.
this is how I am importing the buttons:
ActionScript Code:
package {
public class DocumentClass extends MovieClip {
private var myProj:Content;
[Code]....
I worked with trying to assign myProj.name but I understand in AS3 that isn't the best way to go about this. I also worked with trying to populate an array but I wasn't sure how to get the addEventListener to work when one of the class instances in the array was clicked.
I have a bunch of text boxes which are acting as labels on a diagram.The idea is all the labels are jumbled up to start with, and the user has to drag the labels to the correct place.So far, I have the labels, and they are dragable, but I want to be able to lock the label onto a specific area (I've called them crashzones) so that when the user drags the label onto the correct area, the label snaps into place.The 'crashzones' instance names, are indentical to the label instance names, with the exception that the 'crashzones' instance names have the letter 'z' at the begining.
On the dragStart event, something (maybe a string) would hold the instance name of the current label and add the letter 'z' to the beggining, so something like ... crashzone = "z" + label1;As there is an instance with the name "zlabel1", when the dragstop event starts, it'll do a 'hittestobject' on the instance "zlabel1".
I'm not entirely sure how to go about this.I've tried creating a string to hold the 'crashzone' name, but the hittestobject event doesnt work with strings i.e: hitTestObject(stringname);I've also tried with Sprite, but as the sprite technically already exists and has a name, I can't give the sprite any properties.
Let's assume that I've got 3 instances of a movie, each labeled team1, team2, team3. In this movie is a BUTTON (named buttonTest) and a TEXTFIELD(teamReply).
I'd like to write a function in the root that the event listener from the button within the movie would call on, but how do I find out 'which button' was pressed dynamically in order to send a line of text back?
For example: if the team2.buttonTest button was CLICKed, how do I pass that information onto the function to tell the function to send the text BACK to that same movie?
I have a base class which is being created via remote_object [RemoteClass alias] from the server.I have other specialized classes that are derived from this baseclass, but serialization with the server always happens with the base class.The base class has meta data that defines what the derived class is, for example
[RemoteClass (alias="com.myco...')] public Class Base {
have a loop that creates buttons. Each button stays on the screen, but scrolls off, meaning there are at any one time upto 4 buttons on the screen. There are a total of 241 buttons.t is to my understanding that using an array will allow me to access these buttons later, and that is great, but I can not find a way for it to tell me exactly which button was clicked.Am I missing something very simple here?
I'm using a library that has a function that returns an instance of some class Engine.
I'd like to tack on some interfaces to Engine, so I subclass it class InterfacedEngine extends Engine implements AwesomeInterface. but when I change the code that uses the classes from this:
var engine:Engine = generateEngine();
to this: var interfacedEngine:InterfacedEngine = generateEngine();
It gives me a runtime error (elision mine):
TypeError: Error #1034: Type Coercion failed: cannot convert ...::Engine@1bc2bf11 to ....InterfacedEngine.
I have to admit I pretty much ran away from Flash when AS2 came along and only used it for animation purposes over the last 5 years.So I'm having a major crash course in AS3 in Flash CS3 and I'm not enjoying it one bit. I'm getting maybe 10mins of finished work per hour as I try to figure out the limits and rules of AS3. Quite often it seems that AS3 simply can't do what I want it to. Anyway: Characterchecks.as is the main class and it loads a bunch of XML into four arrays. The file starts like this:[code]If I trace the value of, say, cc._Categories from the main FLA, it's empty. I'm guessing that the next line of AS in the main FLA doesn't wait for the previously called function to complete? (This may tie in to my next problem)My next step is that I want to display various things based on the data in the array. I have another class, Display.as which will hold all the functions to create the items on display. I thought it would be best for these to be a separate object. I wonder if I'm right?
So I declare an instance of Characterchecks in the main FLA and call it cc, and then run the functions to populate the arrays... Now I create an instance of Display and call it cd. How can I get functions in cd to see the values of the variables in cc? And if the main timeline can't tell that the functions aren't finished filling the arrays, how is cd supposed to know?I might be asking dumb questions, or maybe I'm doing things ***-backwards, I don't know. I'd appreciate any help, I really would. This whole thing has me at the end of my tether... being the most technically advanced person in my circle of co-workers and web design friends means I have no-one to explain why things need to be done a certain way or what the best way is.
I need to find an instance of a movieclip that is on my flash file. It is really big and uses a lot of memory. It says on the number of times used that there is one instance of the object on the flash file, but I can't find it. I thought I deleted them all but there must be one left. How do I go about finding it? It's a really large flash file with many layers, and I don't want to just delete the library file. Is there any way I can find where the object is placed in my file?
I have 3 instances of the same movieclip (let's call it mc1). In that movieclip is a different one (mc2). In the class for mc2 i need to find out the instance name of which instance of the mc1 it is in.
Is there a way I can I get the name of the instance of mc1 that mc2 is in?
What I have is a navigational button. On click, it adds a MovieClip that contains a SWF.This SWF is a third party news reader/blog. My problem is that when I click on another Navigational button, I can't remove the added SWF (whether I use removeChild() or unload()).The container MC that was added to hold the SWF is removed but the newsreader stays. I assume this is because, that while the newsreader itself works great, it has too many unremoved event handlers, connections.
My main problem is that I can't figure out how to call that added swf by it's name and where on the displaylist it resides. Because I really want to use this newsreader, I've come to accept that I can't remove it. What I'm doing instead is trying to set up a conditional that looks to see if this SWF is already on stage, if so, do nothing but make it visible again(don't re-add the SWF).This is what I have so far, but it's not working (or at least not working without error)
Code: var blogNewsMC:BlogNewsMC = new BlogNewsMC(); function loadBlog(url:String) {
I'm creating a little game - The player controls a character that follows the mouse. Pigs run away from the player, and the player has to get them all into a pen. To make the game a little more difficult I'm trying to add an enemy - wolves, that attempt to perform a 'hunt' method every x seconds. This method sends a reference of the wolf instance to Main (my document class) and Main then loops through the pigs on stage to see if there's any nearby. Now as far as I know this works - my problem is I'm unsure how to send the pig instance reference back to the wolf that called the hunt method, so it can then 'target' the pig, and then attempt to pounce on it.
My company is about to conduct a big project which involves a flash games website. This website is targeted to the US, meaning it will serve a lot of concurrent users. We bought many flash games and the website is about to be finished, so we must find a hosting company right away.
The website consists of 10 static pages, 140KB each (design+images+CSS).JavaScript is being delivered via Google CDN (jQuery, SWFObject) to save bandwidth.We have 20 SWF games, each weights around 500KB to 6MB top.I'm planning to use dynamic compressions and basically any possible method to save bandwidth and resources, but nevertheless I must get a large hosting for possible growing in the future.SQL is nothing special: DB size will be 150MB top and all tables are indexed using fulltext catalogs and non-clustered indexes.
After doing some research, I've found that big websites are using Amazon's EC2. I tried to contact Amazon but they're weren't really helpful. All I got is the following URL.We are talking about Windows 2008 R2 and SQL Server 2008 R2.
I'm working on a site that I received from a co-worker and it�s done with AS2 and the code and instance names are all over the place and it�s really hard for me to follow the code path to change things. I know how to track down what frames and elements have actions through the actions panel but what kind of stumping me is how to find instances with instance names on the stage that are scattered all over the instances that make up the movie. Is there a way to get a log of what instances have instance names attached to them and where they are located in the timeline?
Quick question. I have been Googling this all morning, but it's either not there, or else written in a way that doesn't register. I am inclined to believe the latter, as this seems like it should be something completely trivial to me. I made a small Flash file using AS 3.0, and this is the first time I've really been able to stick to the OOP way of doing things and not hack together a mix of stuff from the timeline to get around not having everything work in the classes.
So I'd like to keep it that way, but one thing is eluding me: I can't call a method of an instance of another class (than the one I'm calling from) without resorting to "DocumentClass(root).instanceName.method." Intuition tells me there has to be a better way of doing this (like, without having to reference the document class every time I call another class instance's function; and CERTAINLY without having to use the word "root" - that just seems so Flash 5 to me. Does anybody have a better way of doing this that they can share?
I am trying to sort out someone else's project and am not used to AS2. There are nine people in a folder called peeps. I want to load a swf into a modal on the page based on the instance name of the button clicked on. How do I get the instance name? I put ? around where the selector should go, not sure what should be there.
I'm so getting confused with this,So i'm making a card game, and i'm just on the beginning of it. I've already added the objects on the stage and stored them on an array.now i made a function that when it executes the .x and .y properties of these cards would change. this is what i did, but nothing seems to happen.the array MyCards contain movieclip objects not strings and also, the function executes when an instance in the movieclip is clicked
ActionScript Code: distCards(MyCards); function distCards(cards:Array):void { for (var i:int=0;i<cards.length ;i++) {
I use two classes for my current project, a document class and a menuscreen class. I have a function in my document class called startGame that i want to run from the menuscreen class when a button is clicked. I'm nearly there but i'm getting an error when i try to run it: 1136: Incorrect number of arguments. Expected 1. The error is at line 17 in the menuscreen class, the line that tries to run the function from the document class. I don't understand what kind of argument it wants. Also, i'm not sure if the startGame function should be (event:Event) Hope someone can enlighten me on what's wrong!
I have enemies being dynamically spawned from a Class. They are constantly moving but I need them to shoot at the player when their X is the same as the Players. I have the enemies being put into an array for collision detection
So here is my script. As you can see I have tween class starting point at 900. Is there any way to make it begin the tween where ever my MC's current _x and _y are?on (release) {
import mx.transitions.easing.*; import mx.transitions.Tween; var tw1:Tween = new Tween(picture, "_x", Regular.easeIn, 900, 69, 1, true); var tw2:Tween = new Tween(picture, "_y", Regular.easeIn, 900, 106, 1, true); }
I am looking for a simple scrolling thumbnail class written in AS2. Does anyone know of any tutorials or code samples anywhere? I can't seem to locate one. I have written one but I have a problem. My thumbnails are 100px x 100px. When I have more than like 36 (can't remember the exact number), my mask (which masks a bit on the left and the right side of the horizontal thumbnail scroller) no longer works. I found out that there is a max pic size for flash so I'm assuming that I am exceeding that max pic size which causes the mask to not work when I breach that size.
Is there a way to generate an instance of a class that implements an interface based on the name of the class?
I am trying:
var ClassReference:Object = getDefinitionByName("movement.OuterSpaceMovement") as IMovement; var m:IMovement = new ClassReference as IMovement; trace("startup..." + m);
-But I am getting an error message ReferenceError: Error #1065 (OuterSpaceMovement) not defined.
I have several classes that implement the same interface (IMovement) but I need to be able to generate new instances of these classes and then pass these instances as a datatype (IMovement datatype) to other classes...
So then I tried:
var ClassReference:Class = getDefinitionByName("OuterSpaceMovement") as Class; var m:IMovement = new ClassReference() as IMovement; and this doesn't seem to work...but the following var m:IMovement = new OuterSpaceMovement();
I'm trying to create a new instance of a MovieClip when the original one has been used. Would sound easy enough. Just use: var
instanceName:ClassName = new ClassName();
the class name/mc in the library im trying to duplicate is MCg1 so
var instanceName:MCg1 = new MCg1(); right?
However, the particular object in the library i'm trying to duplicate has a base class that is an external class file (just to control it's drag drop functionality)... i.e baseclass is not set to the standard flash.display.MovieClip, or whatever the case maybe. So i end out with a: TypeError: Error #1009: Cannot access a property or method of a null object reference.
I've done a class to be able to listen to the event for a CLASS not on an instance.
Code: class net.webbymx.events.XClassEventListener {[code]....
why did I do this.It cames with my rugby game.I have player in two teams. When a player throw the ball I want the other teammate to act like "wait for ball" and the opponent like "seek for ball". Plus I'm lazy (and I don't want to register the listener for each instance of the player I'm creating). So this class is made to be able to handle as many instance of a class I want without adding a listener on each of them. I'm just creating a global listener on the class and then I will be able to receive dispatched event for any instance of this class .so in my team I can do
How to populate a flex datagrid from an Arraycollection without specifying DataGridColumn's individually. Is there any custom datagrid available where I can pass the datasource arraycollection and see the data populated in the output. Without knowing the structure / bluprint of an object is there anyway to find how many member variable that class have?