ActionScript 2.0 :: F8: Objects Returned From Class Being Overwritten?
May 5, 2007
I have four movieclips on the stage. They can be dragged around. I have a class that creates a segment from two points, and returns the x-intercept, y-intercept, slope, and inverse slope of a linear function going through the two points.On every enterFrame() i create one segment for each pair of points, then the information is displayed in a bunch of dynamic text boxes.
The Problem: whichever object is sent over last overwrites the data from the first. I am creating two different objects with different names, but the first is being overwritten by the second. What is going wrong here?
FLA included. But you will need to make this class file:
Seg.as:
Code:
import flash.geom.Point;
class Seg {
// variables
private var p1:Point;
here is the scenario we ran across while working on our Flash AS3 project today.
/main/root.fla /main/root.as /main/sub1/sub.fla
[code]....
We have many sub swf's that are loaded by the main root swf. The root swf shows the art on the stage of the sub swf, and also runs some code from the sub swf's document class. However, we noticed the constructor was not getting called on the second sub swf if the document class is the same name- even if they are in different folders. Note that we publish our swf files to a separate directory (with the same structure as above) so it is easily copied to the web server.
-root.swf loads sub1/sub.swf -the constructor of the document class sub.as in subfolder sub1 gets called -root.swf shows sub1/sub.swf assets with the correctly constructed sub1/sub.as document class -user chooses to switch to sub2
[code]...
We decided to use a workaround where we basically changed the two document class .as files to be different names (e.g. renamed sub1/sub.as -> sub1/sub1.as and sub2/sub.as -> sub2/sub2.as, and updated the .fla's to point to the renamed document classes), and it works as expected. Hopefully that workaround is useful for someone.I realize most people just name every single file differently and keep everything in one folder, but when you have a sufficiently complicated project, things like this come up.
This is my first crack at writing a class and after reading up this is what I have. Essentially, I want to be able to write var txt:adamsboxmaker = new adamsboxmaker(parameters); and have txt be a display object from the returned MovieClip. But that's not happening.
I'm working on a project right now in Flash Builder which is strictly AS3. I've written a bunch of code for various graphic assets that are being developed in the Flash IDE and compiled into a library swf. So, for example, I might have a drop down list Sprite which I layout in the flash IDE and then set its class to: [url].....With the library swf loaded into my project, if I need to create a new dropdown list I would say something like:
Code: load.getDefinition(classes[name]) as Class
and then create a new instance of the class that is returned. I decided to try saying 'new DropDown()' instead of pulling the class definition from the loader, and I got a new DropDown. I figure this is because the DropDown library asset is now in the ApplicationDomain and Flash Builder knows that when I say 'new DropDown()' I'm saying [url]....' and it can find that class file. However if my library asset just had a class of 'Widget' and no path back to an .as file it would throw an error. Am I correct in this statement?
I have a RemoteObject returning a 'Schedule' class. I've created a client side RemoteClass to map to it. All properties of the class instance are coming in fine. I just not clear on how I go about calling methods on the class. How would I call a setter on startdate?
package classes.remote { [Bindable] [RemoteClass(alias="com.site.data.schedule.Schedule")] public class Schedule { public var id:int; public var modifydate:Date; public var startdate:Date; public var enddate:Date; }}
I am developing with Flex + java + hibernate in one project. I am trying to add one more advanceddatagridcolumn in flex AdavanedDataGrid control. Actually it work very well but only except I added columns data. I have no idea what should I do to make it out I am telling work flow. At first call select method in DeliveryService.class through the RemoteObject and then call DeliveryMgr.class for call business work. After get return list type return value it pass to presentation class to setting all of the selected return value. I can print trace log what I added columns data in DeliveryPt.class but it cannot return to flex area.Strange thing is I can check out value of what I want to show data in DeliveryPt.class but it does not show up in AdvanedDataGridColumn of Flex.
I've been tasked with building an AIR for iOS application.Everything is going pretty smooth, there's just one thing I can't seem to get right.I need to make some changes to the application descriptor xml(<key>UIApplicationExitsOnSuspend</key><true/> so the application will exit properly i/o suspending)... easy right? Problem is: every time I press 'publish', flash overwrites my xml and packages the ipa file with it's own xml.
[code]This script is for a loader image gallery in flash, as part of a class assignment. What happens is that in flash, when I open the swf file, the initial image (images/nair_evanescentautumn.png) will load fine. However, clicking on any thumbnail image (including the exact same images/nair_evanescentautumn.png), will result in an error saying the file cannot be found.I cannot figure out why it is doing this... I've tested it over. Clicking each thumbnail does go to the correct position in the two separate functions. All said full-size image links are in the folder images/, and replacing the initial loader image will load the other images in place of the default one. However, clicking on any thumbnail still results in URL not found, even though everything works correctly.[code]Before anyone asks why I'm putting this kind of content into a flash site, I'm not--this is only for a class assignment. I'm just trying to figure out why my images aren't loading right when I'm only doing the exact same thing in the functions as I am on the other pages.Of note, commissions.swf has the exact same feature, just with swf files loaded instead, and it works perfectly fine. home, traditional, digital, and photography all have the image gallery, and all have the same issue (I only referenced one page because if I can fix one page I should be able to fix all of them).As for the artworks, they are all my fiance's. The website design was built for her, and I used the website design for this project because I didn't want to have to build an entirely new interface design. Since the project also required a gallery, I felt that this interface would work just fine.
Im creating an sqlite db in my air for android app inside the following function:[code]i can successfully create tables, insert and select, but each time i re-publish the app from flash cs5.5 the database is overwritten and all data is lost. Totally stumped, any ideas welcome!i'm publishing a debug release directly from flash pro via usb. When the app is initialised it calls the method above, on receiving the OPEN event it creates a table using the following SQL statement.[code]I can then run some operations, insert, select etc and everything is as expected. If i exit and re-luanch the app, the previous data sets are intact, but when i re-publish from flash any data stored from the previous release has disappeared.According to the documentation SQLConnection.open() will open a connection to the file supplied in the parameters and if it doesn't exist, it will create one...
Internally Flash obviously keeps a list of the primitives drawn using Graphics so I wondered if you have many such primitives in a Sprite, can you re-position/remove/alter individual items rather than clear and re-draw everything? Or is this deeper into the bowels of Flash than you're allowed (or recommended) to go?
What I have is a game with a Level object, inside the Level is a Player object, and they don't have instance names given, what I'm trying to figure out is how to do is make it so that the player can change the x or y properties of the Level object.
To be more precise, I'm making it so that when the player moves in a certain direction, he either moves accross the stage, or he starts moving the Level object around the stage, it'd be in an Event kind of function, now I can easily make the Player move, but I don't know how to make the Level object move which the player is inside of.
I have question regarding removing instantiated objects. Let's say i have a main class in which i instantiate a custom video player (or whatever) class:
Code: ... var videoPlayer = new VideoPlayer(...); addChild(videoPlayer); ...
And inside VideoPlayer class i have of course dozens of objects (movie clips, sprites representing different parts of VideoPlayer) and dozens of event listeners attached to them. My question is, if i want to remove this VideoPlayer class from my main class is it enough to just do:
I have a class that represents a turret in the center of my screen.When I hold down SPACE, I want it to create a "bullet"-object that moves in the direction of the turrets cannon, every frame the SPACE key is held down. I am having problems with this cause I am getting this error when I am trying to create the object:
Error #1009: Cannot access a property or method of a null object reference.
This is where the error occurs:
ActionScript Code: public function chaingun(x_:int, y_:int, rot:int, cd:Number, spd:Number, sprd:Number, life:Number) { this.Cooldown = cd; this.Speed = spd;
[code]....
PS: What happens is that when I press the SPACE key, the "turret" class event handler runs the function "Shoot_Chaingun" and that function creates a new Chaingun-object (which actually is a bullet), that inherits the x, y, and rotation of the turret, along with some additional varaibles, including lifetime. Then upon creation, I use "addChild(this)" to add it to the main stage, and "removeChild(this)" once it's lifetime is up.
EDIT: And also, I just realized I don't have a MovieClip linked to this chaingun class. How do I make sure that every time a chaingun object is made, the MovieClip is also loaded?
I have an enemy on the stage that reads whether it's being hit by a bullet by a hittest. There's a for loop inside the enemy's class that looks for all the bullets and names the bullet that's hitting it "hitBullet". What I'd like to do have an easy way of seeing what type of bullet is hitting the enemy. I'm basically looking for something like
if (hitBullet == RegBullet) { //do regular bullet dying }else if (hitBullet == ClusterBullet) { //do clusterbullet dying }
, where RegBullet and ClusterBullet are classes. But I have no idea what hitBullet is equal to when a ClusterBullet or RegBullet hits it. I traced hitBullet to see what it would return and got "[object ClusterBullet]", but I'm not sure what that would be in the actual code.
I have some data (preferably objects, insteads of string) in the flash which I want to store as table format. So that I can query them. It is not datagrid as I do not have to show them. Currently, I am use "xml class" because of the query function. However, "xml class" cannot store objects.
I created multiple classes for a platforming game in AS3 and when i am making the levels i simply drag the objects of a certain class to the stage from the library. My problem is that i am unable loop through all of the objects of class type wall from another class of players.(so that i can make every player created not go through every wall created)
Like: for(i=0 i<numberofwalls i++){ do sumthing with wallobject(i) }
Are there any functions that can return the number of walls dragged to the screen and one that lets me access each individual wall dragged to the screen?
I have two objects, both brown squares. I want them to be members of the same class but one square to have a number "1" in the center and the other to have a number "2" in the center. Any ideas on how I might accomplish this? Any clues on how to instantiate a vector drawing (drawn in illustrator) from ActionScript 3 as opposed to dragging it on stage from the library in flash?
I have a map and I have some objects that I place on the map symbol. I am NOT dynamically creating them.
Lets say there is 3 objects all linked to the CollisionDetect class. The player can move these objects around fine, no problem but I want to make it so the player cannot push the objects on top of each other.
how I can detect that Ob1 of the class is hitting Ob2?
im currently writing a piece of code where i need to get all children that are specific class or extend one.
currently im using this
ActionScript Code: public function getConnections():Vector.<NodeConnection>{ var res:Vector.<NodeConnection> = new Vector.<NodeConnection>();
[Code].....
The problem with this is that 1st, string comparison is slow, and im expecting that there will be hundreds, of instances on stage. and secondly, It is very probable that i will extend the classes that i use in the functions, so their toString() will produce different name. e.g if i have on stage instances of "Node, ExtendedNode1, ExtendedNode2 " since they are all nodes, id like to all of them be returned.
Probably a very easy question, but Google and Livedocs are both failing me here. I have a custom class (Which I shall refer to as "Circle"), and simply wish to find each of the "Circle" class, and add them to an array in my Document class. I may also need to perform this task from within other classes.
I've considered having each 'Circle' on creation send a sort of "signal" to the document class for it to add it to an array or vector, but can't figure out how to influence the Events of its Parent class.
We'll call it "song" for the sake of example...song has the attributes artist, title, album. upon makign all the objects, i put them in an array.[code]...
whether i want to find one object that has a unique attribute (like "london bridge", maybe) or multiple objects that might have the same attribute (like an artist or album), is there a more efficient way?
I've set up a holder flash file that checks an XML file every 30 secs, and if the content has changed loads a new movie into itself. I am getting mixed results and baffled why this is not working consistently - the XML is being read successfully, but the attributes that should be read from the XML are being returned as 'undefined' for some reason.[code]...
I'm creating a registration form that contains a 'chain-select' series of ComboBoxes. In other words, select an item in the first CB and display the results from a mysql query in the next CB.
PHP returns the results in an XML String (Code: Select allecho "returnXML="$returnXML; ). All is working great up to that point. What I would like to do is loop through the Code: Select allXMLList, running Code: Select alldataP.addItem({label: newData}); for each node. The problem is that the Code: Select allXMLList.length(); function is returning a value of 1.
Code: Select allxmlList.hasComplexContent() returns 'true' which, i believe, would indicate that the XMLList is being created successfully.
Here's a bare-bones version of the code that should be sufficient for solving this problem.
AS3: Code: Select allimport flash.net.*; import fl.data.DataProvider; var dataP:DataProvider = new DataProvider(); var newData:String;
How to access stage elements from within a class. buttonControls.as
Code: package { import flash.display.Sprite; public class buttonControls extends Sprite { // Navigation Hover Color var hover = "0xF1E960"; var normal = "0xFFFFFF"; public function changeColor(object, color){ [Code] .....
I'm trying to access a MovieClip created within the authoring tool from an ActionScript class. Here is my code:
PHP Code:
package { import flash.display.*; public class MoreVideos extends Sprite {
[Code].....
I also tried changing that to [stage.moreVideosBox.visible = false;], but I then got "1119: Access of possibly undefined property moreVideosBox through a reference with static type flash.display:Stage."
Is it possible to directly alter items in the authoring tool from a class? If I move 'moreVideosBox.visible = false;' outside of the class, in the main .as file, it works fine.
When I try to do this in an AS CDATA block, it tells me I can't have a class declared within a class (the MX:Application itself). Makes sense. But where and how do I do it?
Let's say that I've a button object (instance of Flip) and a coin object (instance of Coin) on the stage. The coin object has two frames: one showing Heads and one for Tails.
MyCoin class is as following:
package { import flash.display.MovieClip; public class Coin extends MovieClip
[Code]....
Problem: How do I reach the coin object on the screen via onMouseClick function? Let's say that the object on the stage has instance name of myCoin. I suppose that had I not done this with an external class and simply used actions from the frame I could just use the instance name as a variable. I couldn't figure to do the same it in an external class. Do I first create the object which is already on the stage?