ActionScript 3.0 :: Dynamically Creating Class Instances
Apr 26, 2010I have a class subclass1.I want to be able to do something like this,[code]
View 4 RepliesI have a class subclass1.I want to be able to do something like this,[code]
View 4 RepliesI use the code below to create 3 movie clips.
var A:Array = new Array();
for (var i:uint = 0; i < 3 ; i++) {
A[i] = new hayvanSec();
[code]........
hmm how do I describe what I'm trying to do.. well here it is: In my flash library I have a series of movieclip with names like clip00, clip01, clip02 they are set to export for actionscript as the same name.
Now in my as file I'm importing a xml file that has the names of the clips which to place on the stage. Now if it were just a regular case I would do
[Code]...
I hope I am somewhat clear, please let me know if I can explain further. My project is really complex and I tried simplify it here. Please help or suggest alternative method.
basically i want to create ten balls on the stage. I have a balls.as file which uses the drawing api to create a circle within it. also within the balls.as file there is a public variable.[code]how would i go about finding out: if you click one of the balls it traces that balls life.
View 9 Repliesi have a problem, here's the error code:
Code:
Warning: 1072: Migration issue: int is not a dynamic class. Instances cannot have members added to them dynamically.
and the source:
Code:
public function getStartUpData(param1:MovieClip, param2:MovieClip):void {
(null | null <= this)._111d = param1;
this._111f = param2;
_111e = new MainInterval(param1);
[code]...
Version: Flash CS4, AS3 is it possible to turn a given sprite into a Class with a given string as its name? The resulting class should then be available under that name in the current domain's definitions.ie.
createClass(someSprite, "someName");
....
var someClass:Class = getDefinitionByName("someName") as
Class;
I need to load all images that I have used in my project externally without embedding. The images are present either in skins or as icons for items in trees. I came across the IconUtility class here I was able to modify it and use it for trees but the problem is we cannot use iconutility for the same component to set 2 different skins (like for a button - upskin downskin). I was not able to think of a workaround with iconutility. Is it possible to simulate embed and create a class dynamically and return the class at runtime?
View 2 RepliesI'm having one of those moments where I can't figuring out the simplest of tasks. And I'm presuming it's just a silly syntax error on my part. I'm calling a class that handles a nice lightning effect. And this is how I would initially set that up:
[Code]...
I've come across a couple threads that pertain t my question but after reading them, trying different approaches, and searching the internet I am still confused. How do I create visual elements, such as a text field, dynamically from Actionscript in a class file?
Basically I created a class file that loads an external XML file and now I want to create dynamic text fields for the elements in the XML file. I did some debugging and I know the XML is loaded correctly. I can also get it to create dynamic text fields when I place the code inside of the fla. The problem is when the code is in the class file. I've read that you need to pass the display object to the class but I am still unclear on how to do it.
My fla has the following code on the first frame:
import classes.estimatesheet;
var sheet1:estimatesheet = new estimatesheet("xml/estimationSheetFields.xml");
Here is my class file:
package classes {
import flash.xml.*;import flash.display.*;import flash.events.*;import flash.net.*;import flash.utils.*;import flash.text.*;
[Coe].....
I am making a Thumbnail class which is part of my Photo Gallery Package that I am building with the intent of automatically generating my thumbnails. I do not want to limit myself to just AS3 animations, I would also like the ability to use timeline animations. I have a system using "in" and "out" for frame labels which I find very efficient and I get stuff done quickly. So I created the thumbnails holder MovieClip with the animations and have it linked in my Library, however, when I try to pass it to my Thumbnail Class, I only get one instance and I need to create several instances.
Document Class
ActionScript Code:
var thumbCont:mcThumb = new mcThumb();
thumbNails = new Thumbnails(thumbCont);
Thumbnails Class
ActionScript Code:
var thumbContainer:MovieClip;
public function Thumbnails(thumbCont:MovieClip,) {
thumbContainer = thumbCont;
}private function createThumbs():void {
for (var i:int = 0; i < aThumbs.length; i++) {
[Code] .....
I eliminated most of the additional stuff. What this does is that it doesn't create several thumbContainers, rather it just uses the one. So how would I be able to generate several of them? I can obviously create an Array with them and create them in my document class, but if I can avoid that and have my thumbnail class do it by itself, that would be perfect.
I have recently started out with flash oop concepts and was wondering how to do create an instance of an extended movie class without dragging and dropping the clip from the library ....I have figured out this method..
for(i = 0;i<100;i++)
{var mc:MovieClip = attachMovie("ball","dasd"+i,_root.getNextHighestDe pth());
mc._x = Math.random() * 600;
mc._y = Math.random() * 600;
}
but this way I cant pass arguments to the constructor function of the ball class..
I want to know how to make class instances into listeners and broadcasters, from inside each class. Here is what I am trying specifically... part of the Proj class... (projectiles, as a matter of fact)
Code:
private function listen():Void {
u.register(this);
onUpdate = function(){
step(); // a function I have which makes the projectile move (not shown)
}
}
where "u" is another class, the Updater class with this code...
Code:
class Updater {
// const. --- make this a broadcaster
public function Updater(){
[code]....
PS: What is the syntax for using AS2 code tags instead of just "[CODE|"?
I'm slightly new to Flash CS3 + AS3 combo, so its more of a lack of practice question. My question stems from the problem described here http:[url].... . Note, its not the same problem, its a new one.The Problem ,So I have multiple library assets (which are on teh stage) and I want to assign similar functionality to all of them.
Attempt 1: So I create the n assets, create a custom class in AS3, link them to Flash CS3 and obviously enough it gives me the error that multiple assets can't be linked to the same class.Obvious enough to understand (well not completely, because from a programmers background it doesn't make sense).
Attempt 2: Same as attempt 1, but instead of linking all the assets to the same class I make the base class the same class, and let the derived class be dynamically created by Flash on compile time.So the linking works, but the problem is, in my base class I have a method which does something (say an tween) on a child of the library asset. So if the assets on the stage/library are called asset1, asset2, asset3 (same name for asset name, class name, id name), each of them has a sub-movieclip called ... say 'foo'. now if I manually wrote a class for each asset, I could do 'this.foo' to play with the sub-movieclip. However since this functionality is in the parent class, I'm unable to do it.
P.S. If you're form a programming/OOP background, its basically a abstract class problem. My Base class knows how to doSomething(), but it needs aSomething, which is defined in the Derived classes. However I found out that AS3 classes don't support virtual(C++ )/abstract (Java) in the true sense of the word (unless I missed some obvious documentation).
Let's say i have a bunch of balls/cells. I'm having trouble figuring out how to make it so that every other ball bounces off of every other ball.
so in short, it's really one instance being able to check all other instances of the same ball class?
Been struggling with the basics of creating instances at runtime. I needed to implement an XML video player and even though the client has supplied a component that they liked and it works fine, i cant turn it off as im not sure how the thing works. Basically the timeline hits a keyframe and stops. It runs the code to make the player popup but once the user has exited, the player stays on.If the function creates an instance for flv playback... how do i tell it to stop?
function below
function makePlayer ():void {
my_player = new FLVPlayback();[code].........
I'm having trouble creating instances of an object, I want a random number to be generated and then based on the number which was choosen create an instance of an object in one of four positions.The problem I'm having is, my instances are generated fine but there is one that keeps jumping to x 0 and y 0.[code]
View 21 RepliesI'm trying to create a vertical column of images in a mc that can be clicked. I've added listeners to reposition them once they load, but right now they are overwriting each other. I'm not sure how to rename the object and listener vars for each iteration. [code]...
View 1 RepliesI've been hitting dead ends while programming lately all over, and I finally came to the realization all the code I have that is broken is because I don't know how to interact with instances of one class from within another. Here's the gist of what I am trying to do:
if(this.hitTestObject(targetClip)){
trace("hit!");
}
The problem is, if I address a single instance that is on the canvas, I get "access to undefined property targetClip", even though the document class can interact with it fine. If I target the class file of targetClip, I get "Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject". It isn't just a problem with hitTest either, I'm having this problem with other actions, so there is some basic syntax I'm failing to comprehend.
I have several clips in the library:
MCA1
MCA2
MCA3
....
MCA100
Each with "export for actionscript" checked, and mathcing classnames.
I want to create an instance of each - and add to the current stage. I need to do this:
PHP Code:
var clipA1:MCA1 = new MCA1();
var clipA2:MCA2 = new MCA2();
var clipA3:MCA3 = new MCA3();
[Code].....
I'm having trouble creating multiple instances of one movieclip. I've got an array set up that loads photos into flash and places them in a grid (sort of). I want those photos to have outlines around them. So, i created an outline. Now, when i try to place it on all of the photos, it will run through them and only apply itself to the latest photo (one instance overwrites the others). How do i make multiples of the outline?
View 1 RepliesI am working on a project in which I need to create a bunch of buttons.. all need to look the same with different text on the button.. rather then making each button separate in my library I would like to make one and create instances of the one button. I have created a button with a text field on top named txtLabel with a default text of "Label Here". I have dragged an instance of the button onto the stage and named it btnHome
btnHome.txtLabel.text = "Home"; d
Does not work..
I get the following error
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at MyProject_fla::MainTimeline/frame1()
I thought would be coded like this:
var sp:Sprite = new Sprite();
sp.graphics.beginFill(0xFF88CC);
sp.graphics.drawCircle(0, 0, 50);
[Code].....
however, I realize even tho im looping that addChild method, its still adding sp, so do I add a new naming convention in the loop, or should I be adding these instances to another display object.... this seems like such a simple thing to do yet I cant figure it out, I also want to randomize the x and y, but this first seems to be the issue I need to address.
i am trying to control 30 instances of a movie clip dynamically. the instances are as follows
ship1
ship2
ship3
[code]....
coming from php i would just set up an associative array like list array('speed'=>array(false,false,true,...),'weapon '=>array(true,false,....and so on I can not for the life of me figure out how to store this information and then use it as a variable name later.my end result should look something like this .. i just don't understand how to do this in as3 .. it seems unnecessarily convoluted.
Code:
foreach($upgrades['speed'] as $key => $val)
{
UpgradeScreen.'speed'.$key.visible = $val);
this would dynamically call
[code]....
i know the above is incorrect.I want to create this so that it is completely dynamic and the instance names can be feed in dynamically as the array or whatever is being looped.
I have a movie clip 'sliderMc' which contains two other clips 'slider' and 'groove'. I've used actionscript to make the 'slider' clip move along the 'groove' and display the value of the at each point in a text field. The idea is to have a slider object that i can use multiple times. I want a situation whereby I can create instances of 'sliderMc' so that I'll be able to move the slider on the individual clips and have each slider update different variables which would then be sent to an XML file or php. Im able tp talk back and forth between php and xml with no problem; The issue I'm facing is that after creating multiple instances of 'sliderMc', I'm not able to give the 'slider' and 'groove' movie clips different instance names without changing the instance names of all other 'slider' and 'groove' instances of 'sliderMc'. Which in turn makes it difficult to distinguish between the different sliders in actionscript.
View 0 RepliesI create X instances of a class (called SM) depending on a varibale I have (called here howmany), but later on as I want to check their states with a while, I need to have diferent instances names (sm1,sm2,sm3...).[code]
View 1 Replieswhy this sort of, but doesn't work?I'm just creating a group of buttons using imported pictures without having anything in the library.Here's the code I'm using:
[AS]clipArray = [];
posArray = [];
for (var k = 0; k<3; k++) {
[code].....
So I know that if I want to create an instance of a movie clip called part01Roads from the library I do this:
Code:
var part01Roads_mc:part01Roads = new part01Roads();
addChild(part01Roads_mc);
part01Roads_mc.x = -22379;
part01Roads_mc.y = 317;
Well I want to take this one step further if it is at all possible. Lets say I have 100 different movie clips labeled in a sequence: part01Roads, part02Roads, part03Roads ..... part100Roads. Instead of rewriting the above code 100 times, can I make a loop to do this?
I've done some basic flash for my college course and i'm moving onto advanced flash and Actionscript. For this, i'm trying to build a "construction game".
What I have is objects on the right side, and I want to be able to drag out copies of those objects onto the left and have the size and rotation of each object adjustable...
So say click and drag on a circle, it puts a copy of the circle where I place it on the left. I can then drag that circle around, scale it or rotate it, or if I decide I don't want it at all, drag it onto a recycle bin icon and have it removed.
I'd like to be able to make as many copies of that circle as allowed (so maybe a limit of 10?), and have each one adjustable when you "select" it...
Is this correct? I am gettign this errorTypeError: Error #1007: Instantiation attempted on a non-constructor.I am trying to created a new instance of a movieclip on stage based on the number from elderCount.
//elderCount is a var:Number
var elderMan:Array = new Array(new starMovie());
var Star:starMovie = new elderMan[elderCount](stage);
[code].....
I thought would be coded like this:
var sp:Sprite = new Sprite();
sp.graphics.beginFill(0xFF88CC);
sp.graphics.drawCircle(0, 0, 50);
[Code]....
however, I realize even tho im looping that addChild method, its still adding sp, so do I add a new naming convention in the loop, or should I be adding these instances to another display object.... this seems like such a simple thing to do yet I cant figure it out, I also want to randomize the x and y, but this first seems to be the issue I need to address.