ActionScript 2.0 :: MovieClip SubClass: Getters, Setters And MouseEvents?
Jul 19, 2006
I am plain stumped. I am working in F8/as2.0.I have a class that extends the MovieClip class. I have a blank_mc in the library that is linked to the class. Here is the constructor:
ActionScript Code:
public function MyMC (target_mc:MovieClip){
var _mc:MovieClip = this;
_mc = target_mc.attachMovie (.....);
}
That works all fine and dandy. Where I am having issues is basically I have properties x, y that DON't overwrite the _mc's _x & _y props. Instead, the use getter & setters that take values and then calculate the needed number to set the actuall _mc._x, _y props. This doesn't seem to work at all and i don't know why. Here is the code:
[Code]
So I got this to work by NOT extending the MC. Instead I have a variable ref to a _mc prop in the class.However I am unable to set event functions to it even if I make some ref to the _mc prop. Is there a good way of approaching this by say a decorator pattern?
Is there a way to synthesize getters/setters in AS3? It's very common that you have a class with lots of variables, especially in math calculations (Model in MVC pattern), that you'd like to expose. Is there something like synthesize property in Objective-C, that allows to generate getters/setters?
Is there a way to use getters and setters for Vectors?Say, in my Main class, I would like to write
myVector.push(item);
and in another class, I have written:
public function get myVector():Vector.<int> { return _opponentCardList; } public function set myVector(myVector:Vector.<int>):void { _myVector = myVector; }
This doesn't really work as you have to set _myVector to a Vector. But what if you just want to push(), pop() or splice?
public class AbstractTarget extends Sprite [codee]................
And then I have a class called "Target" that extends AbstractTarget...how do I access the __movement property? Do I have to write the getter and setter in my Target class also and override both functions/methods?
What's the best way around this problem with interfaces?
public interface ITest { function set testField(test:String):void; }[code]......
Test does have a setter for testField (an implicit one).I don't want to define an explicit one for every single field I have defined in my interface.There doesn't seem to be a way to define getters/setters in interfaces (or the syntax just escapes me).Do I have to do this explicit getter/setter nonsense in order to use interfaces in this way?
In the following: //track of whether the player has the key public function get hasKey():Boolean { return _hasKey; } public function set hasKey(keyState:Boolean) { //trace(keyState); _hasKey = keyState; } These functions don't even work until a value is passed to keyState in the set function correct? As you can see I did a trace keyState and the trace didn't return anything until it was true.
I've came across this compilation error a while ago.. As there's an easy fix and I didn't find anything relevant at the time, I eventually let it go.I just remembered it and I'm now wondering if this is really part of the language grammar (which I highly doubt) or if it's a compiler bug. I'm being purely curious about this -- it doesn't really affect development, but it would be nice to see if any of you have seen this already.
package view { import flash.display.Sprite; public class Main extends Sprite {
I have a class (Wall) that inherits from Sprite.Sprite already has width and height properties. But for wall, I need to do some other additional calculations when the properties change (f.e. make sure the new size won't cause it to overlap any other walls).So, how do I set the width property inherited from the Sprite class from within the width setter of the Wall? (or perhaps there is an alternative way to do my bounds checking whenever width is set?)[code]
The following code seems to create an ambiguity for the compiler (please see error commented near the bottom). Is it not possible to have getters and setters split between interfaces?
if getters and setters are the best option in a specific case. The case is when I have class 'A' instantiating classes 'B' and 'C'. Class A contains public getters and setters for classes B and C to access so data is centralised.Is this best practice or would it be best to pass the data to classes B and C through parameters?
I don't understand why adobe set them up that way. As far as I can tell, all the setter does is change the value of the varible and nothing else. does anyone know why adobe set things up this way or what the x and y setter do other than changing the value of the varible?
anyway im using flash as3 for about 6 months, and im still kinda confuse in this things like getters and setters, and idk what you call that but here's and example :
private function myBoolean():boolean { //codes here // {
idk how to use it, and what it differs from getters and setters,
my main class is Editor my sub class is a CustomTextField i need my Editor to keep track of what the active CustomTextField is, since there can be more than one. i want to have a variable, activeTextField:String to keep track of the active CustomTextField. i created getters and setters on editor to keep track of activeTextField. how do i call these getters and setters from the editor w/out using static getters and setters on the editor? this has to be confusing to read because i am utterly confused writing it...
I've got 3 coloured balls and 3 zones which any of the balls can be dropped in. The idea is that once a ball is placed in a zone, it stays in that zone and no other ball can be added to that zone until the current ball is removed.
I've got to a point so that any ball can be placed in any zone. However, the problem is there seems to be some hierarchy with regards to the balls. ball0_mc seems to be the chief ball, and will replace any of the other two balls if there placed in a zone, instead of snapping back to it's original position because the zone is full. ball0_mc also can't be replaced by any of the other balls if its placed in a zone. ball1_mc is the next one down the line and when in a zone, can be replaced by ball0_mc if its dragged over it, but it cannot be replaced by the third and final ball2_mc. ball2_mc seems to be the runt of the pack and can be replaced by either of the two other balls when its in a zone and cannot replace any of the other balls when they're in a zone.
Hope you're still with me?! So, what I'd like to do is make it so each ball is equal, so when any ball is placed in a zone, it can't be replaced with another ball until the current ball has been removed...and they live happily ever after in the land of ballshire.
Here's my code. I've created two classes, one linked to the movie clip balls called 'Ball', and another called 'EgoGame' which is being used as the document class for the main .fla file.
I am trying to do panning of a movieclip I have two movieclips on stage. canvasPanel_mc and mask_mc. The former is the maskee for the mask (mask_mc). Inside mask_mc there is a movieclip dragCanvas_mc. The alpha of dragCanvas_mc is set to zero. This is code that I am using:
Can I access a static variable of a subClass' subClass? I don't want to instantiate it, just looking to get the variable because it has already been initialized by the subClass.example:
package { public class A extends MovieClip { private var classB:B = new B();
In my flash document, I have a movieclip drawn on the flash stage (put there myself, not dynamically). I want to use this as a holder for an external .swf. I am using a sub-class to run the loading script. I pass the stage reference to it as the variable "theStage". It has no trouble loading things directly to the stage, but it can't find my movieclip for some reason. I have exported the movieclip for actionscript in the symbol properties panel and have given it an instance name.I've tried theStage.myMovieClip.addChild(mySwf); and suchlike, but always get this error message in output:ReferenceError: Error #1069: Property myMovieClip not found on flash.display.Stage and there is no default value.at MethodInfo-206()Some more information: It works from the main class without any trouble.
I have a Hero class that extends a Unit class that extends a SelectableObject class.[code]I have a movieclip in the library that links to the Hero. Inside the movieclip is another movieclip with the instance name "selector".In the Hero I can use selector.gotoAndStop (n) because the movieclip is linked to that class, but I can't do that for the SelectableObject because it's not linked to that.Is there a way to make selector.gotoAndStop (n) work for the SelectableObject? I can't even do var something:* = this.selector because the movieclip isn't linked to it.Or should I just remove the instance name for the selector in the movieclip so I can declare var selector:* = this.getChildAt (1) in the SelectableObject (the selector being the second child)?
I'm building a portfolio site for myself. When I load the Thumbnails class directly into the FLA, it works flawlessly. But when I load it into another class as an instance or through extends, nothing shows up. could post the code but there's a lot of it. There must be a very common explanation for this sort of no-show problem, right?this.addChild(thumb);for every dynamic instance loaded and it pulls a trace, but doesn't appear.
I'm building a portfolio site for myself. When I load the Thumbnails class directly into the FLA, it works flawlessly. But when I load it into another class as an instance or through extends, nothing shows up.[code]What's the difference, or what could I be forgetting to type?
I'm working on a iPad game in Flash Pro CS5.5 and it was compiling correctly. Now I have marked a lot of MovieClip classes for Export for Actionscript so they use a custom MovieClip subclass as base class.
When publishing the movie I get a SWF without any actionscript in it (publishing takes also a lot less time then before). Now I have a suspicion this is because there seems to be a limit on the number of Export for Actionscript you can have?
The problem is that for iPad I can not split my .fla to create multiple swfs; since swfs that you load via the main document can not have any ActionScript in it (I tried already to put all the sounds in a seperate SWF with export for actionscript turned on, that didn't work).
In haxe I have a DropDownMenu class that extends MovieClip:
class DropDownMenu extends MovieClip { ...
TextFields are added to DropDownMenus (about 50 TextFields total):
// in a loop in DropDownMenu new method addChild(myTextField);
When a DropDownMenu is displayed the items further down are hidden as the menu goes off the bottom of the flash player. How can I make these DropDownMenus scroll?
I've considered doing something on the rollout mouse event. However I imagine MovieClip provides some mechanism for scrolling its contents.
I have a movie clip "Obstacle" for a simple game. I have a class for it (Obstacle.as) that creates it, and moves it. In this Obstacle there is a text field - i use it for testing right now.
I want to make another Obstacle (HayBale) - with a subclass (HayBale.as). I have it mostly working. ACCEPT that text field.
It pitches this error:
1152: A conflict exists with inherited definition com.screenscape.game:Obstacle.myDisplay in namespace public.