ActionScript 3.0 :: Can't Add Dynamic Property To DisplayObjectContainer
Jan 7, 2010[code]...
The above code is not working, I am getting an error.
[code]...
The above code is not working, I am getting an error.
I'd like to know if is possible to trace the name of a container object using the contained object.Something like:
mc1 = new Movieclip();
cont1.addChild(mc1);
trace ("container object is: " + mc1.function_I_need());
[code].....
I am using a regular Flash object as a simple data container, and I want to remove a particular property of that object. Then that object gets passed on to a for..in loop. But even after using delete to remove the property, the key still shows up in the loop.
For example:
var obj:Object = { a: "a", b: "b", c: "c" }
delete obj['b'];
for ( var prop:String in obj ) {
[Code].....
So deleting the property seems to be the same as assigning its value to null.
Is there any way to immediately remove the property from the object altogether so that it is no longer looped over in a for..in loop?
It is not sufficient to check the property for a null value since a property with a null value is not the same as not having the property in the first place, and represents a different state. I don't want to set the property to null, I want to remove the property.
I'm creating an object that's only purpose is to hold a few other display objects, so all I need is a super class that can hold display objects. I don't want to use the sprite class because it has so many functions and properties that I don't need. if I can't use DisplayObjectContainer as a base class then what class should I use?
View 1 Repliesin ActionScript 3, if I loop through the children of a movie clip, it will return a DisplayObjectContainer, which is a list of DisplayObjects. However, the AS3 typeof cannot identify MovieClip as MovieClip is now an object, instead of a data type. How can I correctly identify MovieClip?I found 3 solutions online: First set the MovieClip name to a specific name, then in the iterate process, check the name of children using child.name.indexOf("specificName") > -1
Solution 2:use child.hasOwnProperty("numChildren") to identify a MovieClip
Solution 3: use 3rd party plug-in like FlashDevelop
I'm trying to get a class file from Flash into Builder.Everything in that class sits inside a Sprite called mainContainer. Now I'm trying to get that `mainContainer' which hold the graphics for the class into a Flex Application.This is proving to be a problem as their are many various ways of doing it (it seems going by numerous Google searches).First off I declare an MXML Canvas with an Image inside it (as I read would work):
<mx:Canvas x="268" y="10" width="756" height="680" id="canvas">
<mx:Image id="spriteLayer" x="268" y="0" width="756" height="700" scaleContent="false" autoLoad="true">
[code].....
I am converting a DisplayObjectContainer as a Bitmap using BitmapData.The DisplayObjectContainer has many DisplayObjects. I want to exclude few DisplayObjects while i tranform into Bitmap.Therefore the bitmap should not have that particular displayobjects alone.
View 7 RepliesCode:
import flash.display.Sprite;
var sp1:Sprite = new Sprite( );
var sp2_1:Sprite = new Sprite( );
[Code]....
I'd assume from this that there is no correcting done for children with the same name being added to the same parent. I ask this question because I'm creating a structure that needs to mimic the display list and I'd like to keep behavior consistent.
Another question: I'd assume internally the children are saved in something similar to a Dictionary object, does anyone know if this is true? And then getChildByName simply does a foreach loop and returns the first match on a name?
A DisplayObjectContainer's dimensions change based on its contents.
That can be a LOT of contents, many of them with visible = false or masked, thus making them hidden. Is there a way to get only the visible contents of a DisplayObjectContainer similar to a TextField has the textHeight property, which gives you the exact dimension of what you see on-screen.
I have a display object container and I am trying to add a paste event to it. But the event is not being registered. The documentation at liveDocs mentions that classes that derive from Interactive objects can dispatch paste event but I dont understand why it wouldnt work for me.
View 1 Repliesis it possible to clip children that are part of a DisplayObjectContainer? If I have a parent object with size x 100, y 100, width 100, height 100 and a child that has the coordinates x -50, y -50, width 100, height 100, I can still see the full child staying at x 50, y 50, but I want the child to be cut off by the parent.
View 3 RepliesI have a class which will contain exactly one child, no more, no less, and other classes are not allowed to change that fact.
I could throw error messages every time a child is added or removed by overriding the default properties, but I don't want the object to be treated as if it were a DisplayObjectContainer.
I want it to look like only a DisplayObject, yet I still want to add a child to it in private.
I'm working on a class that let's you use "addChild" to add children to it. In all aspects, it's treated like a regular class, the only difference is that it doesn't really add them. It only draws the BitmapData of them and displays that, which doesn't make a huge difference for the user, but might make a difference for performance, at least the way I am planning to make it.
Now, if users add a regular old Sprite or other DisiplayObject to the container, I have overridden the function to draw the BitmapData of the item, and store the item in an array.The problem is, if the user want to do something like "sprite1.parent", since the Sprite technically isn't on the display list, the parent property will be null. I can't override the passed in sprite's properties, right? Is there any way around this?
I would like to know the internals of that method, in other words what exactly happens when I call that method. If someone can explian it with a list 1,2,3... would be great. including events..
and the addElement method too, if is possible.
look at the following codes first
var sp:Sprite = new Sprite();
trace( sp.width ); // the result will be 0
var mc:DefinedMC = new DefinedMC(); // assume that DefinedMC is derived from movie clip, and the width of mc is 100
sp.addChild(mc);
trace( ap.width ); // the result will be 100
[code].....
so the size of an instance of Sprite is affected by its children.is there any class derived from DisplayObjectContainer whose size is not affected by its children, or is there any method that could make the size of Sprite is not affected by its children.
HOw to USe dynamic property..........?? e answers with example
View 1 Repliessome code look like this:
var i = 1;
while(i < 6){
newX = new Number(i * 25);
[code].....
I have a dynamic Actionscript class as follows: public dynamic class Foo {....} In my code I (may) add some properties to it: myFoo["myNewDynamicProp"] = "bar"; Elsewhere in my code, given an instance of class Foo, how can I determine if that dynamic property has been added already without throwing an expensive exception?
View 4 RepliesHow to apply alpha rpoperty for dynamic text.
View 1 RepliesI'm not sure if this is a bug, or an expected behavior, but, if you try to call super["dynamicProperty"], given that superclass is dynamic, it will throw error telling you that the dynamic class <name of dynamic class> has no property "dynamicProperty". BTW, the extending class is dynamic too.
View 2 RepliesI have generated several TextFields dynamically through a for loop. I would like all the text fields to have their alpha set to 0 so that each field can eventually fade in.
When I apply the alpha property by setting it to 0, or even .5 the text appears to still be at an alpha of 1. Does anyone know how to make the text appear with a low to 0 alpha?
I have attached the code from the function which runs the for loop to generate the text fields. Please not that the value of the text fields are stored in a global array, and the text format objects are also global and are declared in the main body of the class.
Shouldn't it be possible to pass in a dynamic url path for this property? I am successfully loading a variable using loadVars and then attempting to use that variable to populate the xmlConnector.URL property but it does not seem to work. Do you have to hardcode a url for this property?
View 1 RepliesI cannot find and information on how to make a dynamic sharedObject data property.
Simplified Code for what I need/want to do
var iData:SharedObject = SharedObject.getLocal(userInfo);
var dataArray:Array = ["a","b","c"];
var property:String = "prop"
iData.data.this[property] = dataArray;
That is what i was thinking.
It doesn't matter how the property is created, just that it needs to be done on the fly.
I have a movie clip working as a button that is disabled after click. I need to add a scoring option, so that on click it also adds to the score. When I add the scoreGame function, it says the text box is undefined. Ideas?
Here's the code:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
[Code].....
I am trying to:
1) create a dynamic property
2) bind that property to a label
This works great for "sealed properties", but for dynamic properties there doesn't appear to be any event triggered. Are dynamic properties implicityly not bindable?
var myObj:MyType = new MyType(); // MyType is dynamic
myObj["myDynamicPropertyName"] = "initialized";
BindingUtils.bindProperty(myLabel, "data", myObj, repeatedLabel.name);
// myLabel now displays "initialized"
myObj["myDynamicPropertyName"] = "changed";
// myLabel still displays "initialized", it should say "changed" !!!
I have an object
obj = { a: 1, b: { c: 1, g: x, h: { j: {k: z} } } };
if I have an array of dynamic length ["a", "b", [...], "g" ]
How can I now update a.b.c.g ? example:
function set($target, $new_value, $array){
//magic
}
set(obj, y, ['b', 'g']);
[code]....
I am generating the following text box and the data in it dynamically:
_root.createTextField("recipe"+i+"_txt", _root.getNextHighestDepth(), 5, 100, 600, 400);
The problem I am having is the text that is generated only stays on one line and therefore doesn't fit into the text field. I know there is a way to add the multiline property to other types of components but can this be done dynamically?
I am having problems with the _alpha property of dynamic masks. For some reason they don't seem to accept it. I have a holder mc that I use as a mask and the holder is full of dynamic mcs for which I would like to set alpha properties.
My code is:
_root.createEmptyMovieClip('holder',_root.getNextHighestDepth());
function init() {
for (i=0; i<100; i++) {
holder.attachMovie("msk","msk"+i,i,{_xscale:0, _yscale:0});
_root.holder['msk'+i]._x = (550*Math.random());
_root.holder['msk'+i]._y = (380*Math.random());
In Flash 5, How can we center the text in dynamic text box with html property selected? I used center tag and also align attribute in font tag, but I couldn't get text in center.
View 3 RepliesI am having problems while creating object with actionscript, I am new to it and I am getting some errors. I am creating my object this way
Code:
var myMC:MovieClip = new MovieClip();
myMC.x = 50;
myMC.y = 50;
myMC.name = "hunterToken";
tCursos.addChild(myMC);
And it is created, so far everything's good
Later I try to access the visible property, and I get an error
Code:
tCursos.hunterToken.visible=false;
And I get this error:
Code:
TypeError: Error #1010: A term is undefined and has no properties.
at newSiteHTR_fla::mCursos1_1/go()[newSiteHTR_fla.mCursos1_1::frame1:157]