Actionscript :: Can't Add A New Function To String Class Via Prototype
Aug 10, 2010
[code]causes this error with mtasc compiler:type error String has no field myFunction it must be possible to add new functions to a class via prototype.is there any configuration i can do for mtasc to be able to compile this code?
The function is called on release of a movieclip. I'm making a drag a drop navigation and there are two content windows .. "h1" and "h3".
I don't think there's anything(much) wrong with my code itself, I'm just having trouble with calling anything within h_ins.onEnterFrame. Is there a fundamental issue that I'm not aware of? Below are all the details if you're interested.
I have this prototype function: [AS] MovieClip.prototype.moveRight = function() { // when it enters the frame this.onEnterFrame = function() { oldx = newx; // if timelineMC._x less than or equal to howFarRight if (timeline._x<=howFarRight) { [Code] .....
Which works great except that it scrolls the whole thing all at once. Is it possible to put some kind of increment in there so that on a key press it only moves a certain amount of pixels?
I need to run code in a class declaration before its instanciation. This would be especially useful to automatically register classes in a factory. See:
I found a cool prototype function here in the forums that plays a movieclip backwards:[code]I have the protoype defined on the main timeline of my main file. I call the function on press of a button from an external movieclip after it's loaded into main.When testing it in flash it works beautifully. When I test it online it doesn't work at all. Other code on the button being called at the same time does work (like unloading a movieclip on the main timeline).
I'm trying to create a function that will help me fade in sounds with the help of setInterval. I'm almost there! Here is the code so far:
// Begin melodyhalf1 = new Sound("melodyhalf1_mc"); melodyhalf1.attachSound("melodyhalf1"); melodyhalf1.start(0, 99);
[Code]....
I placed a comment in the Sound.prototype.fadeIn to test if it was being called, as well as to see if the melodyhalf1 variable (object?) was being passed.
The results are that the fadeIn function *is* being called, but the trace(this) comes back with 'undefined'.
I'm having issues with something wanted to accomplish involving qued amations that i can reuse in various situations throughout an application...
Basically, what I'm trying to get is a prototype or function that will allows for multiple instances on that stage that start at a specific x/y and size, animate to a specific x/y size and end at a specific x/y and size... the x/y and size information is defined for each of the instances in the function.
A good place for this would be with buttons... check the sloppy diagram attached.
I have the protoype defined on the main timeline of my main file. I call the function on press of a button from an external movieclip after it's loaded into main.When testing it in flash it works beautifully. When I test it online it doesn't work at all. Other code on the button being called at the same time does work (like unloading a movieclip on the main timeline).
I tried rewriting Senocular's AlignmentProperties that alter the prototype of a MovieClip for AS1 and AS2 in AS3... (Basically it adds a top, left, bottom, right, centerY, centerX property to all MovieClips so you can align them regardless of their registration point)Now, I know you (senocular) say prototypes are not typically used anymore for AS3 but they are still there in case you need them. I think this utility could be pretty useful. What are your thoughts on how a property could be dynamically added to a class in AS3?[URL]trace(my_mc.top);// traces the top of a movie clip regardless of the registrationmy_mc.top=0; //aligns the top of a movieclip to 0 regardless of the registrationBut ran into a snag adding properties to a class via prototype.Here is my class...
Scenario: 4 areas on 1 stage which are quite similar (eg webcamconference, each area has the same functions)
Buttonobjects are numbered(eg area 1 has playbutton1,mutebutton1,namebutton1,namelabel1, etc)
every area gets a close-Button which closes/shuts down the area.(close1,close2,close3...)i want to archive the following:
if(close1.isPressed){ function invisall(1); }[code]....
this should do the trick via dynamic Nr at the end of each default button(eg playbutton) but ofc
"playbutton1"._visible=false;
doesnt work because playbutton1 is still a String.how can i take the String as a Buttonname /ButtonObject? do i need to write an new function? this would destroy the purpose of less code. for now i will split the area into frames that i put on the stage.
Let's say I have a Custom Event Class, and it has several Event types stored in static Constant:
[Code]...
Is there an easy way to validate that the type passed to the Constructor is one of the Static Constants of the Class, without having to check it against each value?
public class Example { public function Example () { }[code]............
You can see that the two last classes extend the first one, and both have the 'variable' property. In case that I have an instance of Example and I am sure it is also an ExtendedExample OR AnotherExtendedExample instance, is there some way to access the 'variable' property? Something like
function functionThatReceivesAnExtendedExample (ex:Example):void { if(some condition that I may need) { ex.func()
package{ public class Character{ protected var _hp:uint = 50; //Character Health Points protected var _power:uint = 5; //Damage dealt
[Code].....
I`m instancing a Character and a Player in the Main Timeline, all in frame 1. When I use: ""player.attack(character)"" it works fine by itself.
So I added the if (defender._hp <= 0) this.win() which gives me the following error:
1061: Call to a possibly undefined method win through a reference with static type Character.
"defender" is a Character instance, "this" is a Player instance and "win()" is a Player method. I try to call the Player method inside a Character method using the Player instance adding the "." and his method name
Do I really need to define the win() function in the Character class? Is there a bypass to use a subclass method in a parent class method if it`s called from an instance of the subclass?
I was wondering why my current code for calling a setInterval on a function doesn't work inside my class.I have this code inside one function, calling a second function.
The selfReferential keyword refers to the current class,but was defined previously (selfReferential = this; ).I get no errors, but the dupe() function is never called.and I had the selfReferential variable replaced with the this keyword at one point as well.
I'm not sure that I'm on the right track here. I've got what is essentially a 'gateway' movieclip and depending on the CLICK a corresponding movieclip (form) is loaded -- these all being in their own AS file. There are multiple corresponding pages that will all load/close in their own fashion but the 'gateway' will reload in it's own function-- consequently, I have this function on the main_AS. Can I trigger this function from the sub class or do I need to move the 'reload' function to a 'reload' class.
I've been searching around trying to work this out for a while now. There's been various ideas popping up, like dispatchEvent etc but nothing that seems to be a clear, simple way of doing this.What I'm trying to do is call a function from a class seperate (but in the same folder as) my document class.Specifically, I want to 'spawn' an object and run a function within that object's class from my Main.as.The snippet I have at the moment is as follows;
In Main.as: var object:class_Object = new class_Object(); object.spawn();
How can I run function of the main document class from a class of a MovieClip? I usually just used MovieClip(parent).function(), but now my MovieClip has another parent. Or what do I have to pass to the MovieClip class when creating the MovieClip to acess the main document class?
I keep getting an "undefined property" error when I try to call an external function from within the Doc class. I added the error message to the Doc Class below so you can see where it occurs.
If I take the code from the Tooltip.as below and place it on the FLA's main timeline I can get things working fine, but I would like to move all script to classes. The document class structure looks like this:
Drag_and_Drop.as
Code: package { import Tooltip;// Import custom class public class Drag_and_Drop extends MovieClip {
[Code]....
I realize that I could just combine all the code in the Doc class to get it working, but it would be nice to separate out this particular code which has only one use.
Lets say I have a Main Document Class called Main. I also have a child class called childClass that call a function from the Main class and is also imported in the Main class. How should I call the function? I tried this , but when calling the function, it's getting me error.
I'm trying to have a class reference a variable within the document class and have scoured the web but can't seem to find a solution. It seems relatively simple, but is a major stumbling block for me.
I want the variable in the doc class to increment each time a draggable object is within bounds and snapped to a box in the subclass. By tracking successful snaps, the objects will be placed one under the other each time.
I have a Document class that instantiates a class named Other. I need to call a function in the Other class from the Document class.I'm getting this error: Call to a possibly undefined method OtherFunction through a reference with static type Other.I have read online that you need to use make the functions static or use a getter function but I'm unclear how to do that. I haven't been able to make it work and I feel like i'm missing something fundemental with this problem.below are simplified versions of the classes.
I have a document class called Main.as In the class constructor I have the following listener:
enter code here var listeningFORModeChangeToStudent:Sprite = new Sprite; listeningFORModeChangeToStudent.addEventListener(TellAllModeChangeToStudent.STUDENT,exp); addChild(listeningFORModeChangeToStudent);
[code]....
In a third class I make a call to the despatcher in the previous class:
enter code here var ThisTellAllModeChangeToStudent:TellAllModeChangeToStudent = new TellAllModeChangeToStudent; ThisTellAllModeChangeToStudent.tellAllModeChangeToStudent();
I have trace statements in eveything and from this I know the despatcher in TellAllModeChangeToStudent is being called.The problem is that the listener in the main.as is not calling the function exp.I cant see why and I dont know how to check if the listener is actually seeing the dispatch event?
I have a class Debug with a function called trace inside it which puts a TextField on the stage and outputs the text. Now I am trying to get the Debug.trace() function to do a "normal" debug trace as well from within side itself. of course this causes a recursive loop. I am trying to figure out how I can access the top level separately. I tried using namespaces such as AS3::trace but to no luck.
I know a solution is to rename my function to stop the conflict, but I would like that to be a last resort. It is being used in quite alot of places throughout my entire code so replacing it everywhere is going to be a ballache.