//The test_close is an instance name which I drew on the canvas. var cloneMe:MovieClip = new MovieClip(); cloneMe.graphics.copyFrom(test_clone.graphics); //here is my clone codes addChild(cloneMe); trace(cloneMe.getBounds(cloneMe));
I am encountering a problem in my app only when it is run in flash player 10.1.85.3. Some earlier player versions I have tried are working fine.From what I can tell it seems related to the following:
Quote:
from here: h[url].....
When searching for objects (not strings) in Dictionary objects using the 'in' operator, if the object is not found in the Dictionary object, it will be searched for in the delegate objects. With 10.1, the toString operator will be called on the Object if not found in the Dictionary. This can cause problems with Proxy objects who need to define the callProperty function or it will generate a RTE. ...what it means "it will be searched for in the delegate objects"?
I need to be able to clone an object. The object is not a visual one, only having basic information (strings, booleans and integers). What I want to do is be able to get another object that is identical with the current one. Let me be more specific. I have the class RAM that has some info (like capacity and stuff like that). I have different object with different specs. let's call them ram1, ram2 and ram3.
I want a function that given an object will return another object with the same specs. I can always implement a clone() method inside the RAM class...but this isn't something portable and it won't work with other objects, for example CPUs. Is there any way I can clone an object. I already tried this: [URL] but that returns null.
(I see this same type of question was posted almost three years ago with no resolution, does anyone have a solution now? am trying to save a clone of a custom object (contains arrays and other custom objects as properties) to a Shared Object.Basically I have a menu system that created this program, it's running and at any point I want the user to be able to save it so he can go back to that exact point at a later date. Here is what I do so far:1. Pause the program2. The menu saves the variable that references the running program using a bytearray to a shared object3. A a later time, to load the program I pull the data from the shared object and save it to a variable, which I then treat like the original programHere is my code to save the data:
Code: var byteArrayCloner:ByteArray = new ByteArray(); byteArrayCloner.writeObject(myProgram);
I have this "left half of a door" image in my library, and I did cloned the same image to the stage, making it "right half of a door" but really would like to know what would be the right way of doing such things..[code]Should I just make new instance, or do it through function? Is there a memory issues in one of those, what hurts Flash more?
I'm often seeing others using a Dictionary object in their AS3 code that simply maps objects by String keys and wondering if there is any advantage at all of using a Dictionary over a simple Object if String keys are used. Anyone know any details on this? I would suppose that since an Object is more lightweight it should be faster and preferable over a Dictionary if used with String keys.
I have a collection of movieclips, I would like to create a clone (a new instance) of a instance everytime I create a new object.
For example
var s:Star = new Star(); // star-shaped movielcip addChild(s); // then I want to duplicate an instance of s and add it beside s
For an example like above, it's simple enough to create a new instance with a different name and just add it to the display list. But I have a list of objects I would like to clone as a group...?
I want to load some .swf files using the Loader class. I'm all set with that and got the image on screen but I wish to have multiple instances of it. Do I have to reload one for each that I intent on using?
For example say I'm attempting to load a power up's graphic from an .swf (i'll call it ex.swf). I load it and then put the image I loaded into the power up. But then I also want to have another power up of the same type somewhere else, and I want to use that same graphic. Neither adding the loaded ex.swf's contents or simply assigning the contents to a child of the power up will work obviously. So do I have to load a new copy every single time i want a new one, or can I just clone/duplicate the contents?
I mean I know it must be common for games to have 100's of copies of the same graphic being used by different things, yet If I try to preload the amount I'd need it's not exactly flexibly and if I load them as I need them it seems bad practice..
What exactly is the difference between an object and a dictionary in Actionscript?
var obj:Object = new Object(); obj.something = "something"; var dict:Dictionary = new Dictionary(); dict.something = "something"; trace(obj.something, dict.something);
So I am writing a program which uses Dictionary to store objects. For example
var dictionary:Dictionary=new Dictionary(); var myObject = new myObject(var1, var2, var3); dicionary["key"]=myObject;
where var1, var2, and var3 are simply means of assigning values to variables in myObject.can I access values or functions that are found in myObject? In myObject class I have some getters and setters. Can I use a getter to get the value of var1 for example.
Any good argument as to why I shouldn't use a Dictionary over an Object every single time? I can't think of any case an Object can do the job a Dictionary can't, and it doesn't seem as the Dictionary creates that much more overhead.
I want to clone an object of a class (whose source code I do not have) and copy all of the associated event handlers from the original object to the new cloned object. Does anyone know how I can do that? I know how to copy the properties from the original to the new, but can I iterate over all the event handlers and add them to the new object?
In one of the classes in my Flex application I have a dictionary, which is periodically updated from other parts of the application. It contains some sort of user preferences and I want to keep it in sync with a local shared object - the dictionary needs to be read during the class initialization and saved to the local storage when an element is changed, added or deleted.
The "Dictionary" object inherits only "Object" and does not have a change event - like the "collectionChange" in ArrayCollection. So I can't sync the dictionary just by listening for an event and manipulating the shared object in the event handler. The other possible solution would be to make the dictionary private and manipulate it using special methods in my class. Something like:
public function setValue(key:String, value:String):void public function getValue(key:String):String public function delValue(key:String):void
But using bindings will become a real nightmare and I will have to make changes in many other parts of the application.
My project is a visual way to represent a database of information about books. It will be represented as a collection of menus and submenus. From one menu, the user will be able to access another, from the other the third.Each item in a menu has some content, so the menus themselves are not a means to an end (to execute commands), but a goal in themselves. Viewing them, and browsing between them is the essence of the project.
The simplest way to organize a menu of items would be a dictionary object containing all its members.However, it is not really good for a complex set of menus and sub-menus which is a web of information linked between another.
I found a really weird behavior when using deep copy for objects (ObjectUtil of Flex framework).Imagine we have a class B which extends class A. Class A has property body which is of type ByteArray.I create object b (instance of B). Then I make a deep copy object bCopy, BUT this bCopy object does not contain body property at all! All others properties (of scalar types) defined in Class A are copied properly.When I define property of type ByteArray directly in class B, then this property is copied properly..
I've been starting to create my own classes for a project and I've encountered an error that I don't know how to solve. This is for a Game class collection.
How do I create an object with ActionScript if I only know the name of it? I have a class that should add an object as a "grid" and place it accordingly, so if I have a Square box that I want to place by 4x4 on the screen it calculates it automatically. Well, that's the goal anyway.
I have a function in my Grid class, Add_Background that accepts an Object to be added as the grid background. I use a movieclip (don't know if I can use a graphic element).
I call the function myGrid.add_background("name_of_my_movieclip") or myGrid.add_background(new name_of_my_movieclip());
The first one I don't know how to use, I don't know how the syntax for creating an object this way (etc: grid[a][b] = new name_of_my_movieclip() doesn't work...) so there has to be some other kind of way on how to pass this to the function and that it knows what to do with it.
The other thing I've tried is passing the object to the function (new Grid_Background() etc) but I can't clone the object anyway I try it and the ActionScript reference site says there's an mx.utils.ObjectUtil that I can use for this, but I have no access to it that I know of (tried it).
whether using a String as the key in a Dictionary results in slower lookups than using an Object, Class or Custom Object (an instance of developer defined Type)?
When using a String as a key, does the literal String have to be parsed, or does the Dictionary key point to the String Object?
The dictionary use strict equals(===) for key comparison, how to change the comparison, so I can use my standard for comparison, for example, I have a class named Student:
class Student{ var id:int; var name:String;[code]....
I want Dictionary use id to compare if the two keys are equal, not use strict equal(===) to compare if the key is the same.
I'm having trouble making a copy of objects in AS3 instead of making references.
eg.
var mainMovie:MovieClip = new MovieClip(); var copyMovie:MovieClip = mainMovie; copyMovie.x++;
I don't any calls on copyMovie to edit things on mainMovie. I was reading that I should try implement a clone method on the objects I want to copy. Surely there is an inbuilt way to do this for most objects.
I know there are a million and one posts about how to copy a MovieClip object, and I'm fully familiar with the method of[code]...
For this reason I can't use the original.constructor job as flash obviously thinks it's a straight MovieClip, so I just get an empty MovieClip. So far I've been getting by with creating a Bitmap, but in future these swfs will contain animations too.
Given a very basic xml structure and a generic Object declaration with a property already defined (location), how can I add the nodes of the xml structure (id & name) to the object's properties without statically referencing the names of the nodes?[code]...
hey, I was wondering if there's any way to push a copy of an object onto an array without having to create a seperate variable for each object.
For example- in c, i'm used to doing something like having a 'temp' object- and then in a loop i would set the value of the objects members and push it on to the array (vector). If i try to do something like that in flash though, it stores a reference to that object in the array, so every time it changes every new element in the array changes to have the latest values of the temp object.
Without using as2.0 classes (i.e. just mx style) is there any way I can get the effect i'm trying to get here- just have one instance of an object that i can redefine in a loop and push a copy of it into the array so that i wouldn't have to declare a separate variable for each one which would defeat the purpose of the array.
In the code below, i create an object and stick it in an array, then I make a duplicate of that array. I loop though the duplicate and change the value of one of the props of the object in the duplicated array. Doing this however unintentionally changes the prop value of an object in the original array. I'm assuming that the objects in the duplicated array are mere references to the objects in the original array. Is this correct? And if so, how do i make unique copies of those objects in the original array, so that changes made to the objects in the new, duplicated array are exclusive to those objects?
I know that i could probably make a new object when duplicating the array, and then recreate each prop, assigning values from the original objects.. but this is a simplified example. The project im working on has many props for each object, so, id rather just make copies if at all possible.
Code: var testObj:Object = new Object(); testObj.prop1 = "hello"; // var testArr:Array = new Array();