Actionscript 3 :: Create A Subclass That Takes In Different Parameters For The Same Function Name?
Nov 1, 2011
So I have made this simple interface:
package{
public interface GraphADT{
function addNode(newNode:Node):Boolean;[code]........
Having this setup here is giving me errors, namely:
1144: Interface method addNode in namespace GraphADT is implemented with an incompatible signature in class AdjacancyListGraph.
Upon closer inspection it was apparent that AS3 doesn't like the different parameter types from the different Graph classes newNode:Node from Graph , and newNode:AwareNode from AdjacancyListGraph
However I don't understand why that would be a problem since AwareNode is a subClass of Node.Is there any way I can make my code work, while keeping the integrity of the code?
In a previous thread I asked a question about setting the width and height of a sprite subclass in its constructor method. One of the responses has puzzled me since I read it:
"Setting width and height only makes sense if you're adjusting the width and height of existing content, and the Chart (Sprite) has none at that point."
I don't understand that; what if you're adding children to the sprite that depend on those dimensions?
Here's a simple app which draws a red circle inside of a blue box which demonstrates my confusion as well as one other issue. The full questions are at the bottom.
Main.fla: import Box; var myBox:Box = new Box(200, 200);addChild(myBox);myBox.drawCircle();
[Code].....
Question 2: In this example, the dimensions of Circle are based on the width of its parent Box sprite. Is there a more elegant way to pass the dimensions to the circle? I ask because in my actual project (a chart) the plot area contains a lot of screen locations that must be passed around when I add new objects such as grid lines and markers and passing around the coordinates as parameters seems awfully messy. I'm just not sure how else to do it.
I'm having my first go at creating a custom component that lays out items in a grid. I have made a selection of inspectable properties accessed though getter/setter methods. Some of these parameters are dynamic, and change when the user resizes the component or changes another linked value. Is it possible to make the parameters panel update with the new values when a change takes place. Without this, the user will not have accurate feedback on the values stored in the component. Does anyone know if this is possible (or difinitely impossible)?
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();
I'm overriding a protected function in a subclass.Let's say I have two classes, Apple and Fruit. I have all variables in place, this is just a simplified version.
[Code]...
Example is trivial. The problem is that the type of the getRandom function depends on its own type. One returns an apple, the other returns a fruit.Of course I get errors about override and coercion.
I've tried returning a Fruit instead of an Apple, but then the object is not an apple, therefore it has no Apple-specific properties.The problem is in ducktyping. There's a third class I cannot change, that executes the getRandom() function on each object, and I need the Apples to be something slightly different.
How can I override the getRandom function in Apple, so that it returns apples, rather than fruit?
I seem to be having some difficulty calling a function from my subclass to home/doc class. I am trying to click the button called "GalleryButton.swf" (located in in Home page.as) to add a function called "addGal". (Also located in in Home page.as) to call a function from my main/doc class to work, called "gallery". Which indeed removes my home page from the stage and adds my gallery page to the stage.
I receive this error: ReferenceError: Error #1069: Property gallery not found on flash.display.Stage and there is no default value. at HomeClip/addGal()
EXAMPLE CODE - NOT FULL I have import code such as: import flash.net.URLRequest; import flash.display.LoaderInfo; etc etc. Because the pages to transition using buttons from the navigation class, its just that a button from homeClip.as, won't call the function "gallery" on the main class needed to add the gallery page to the stage.
Main Class - (holds the functions to add pages) Code: package { public function StartHome() { trace("addingHome"); addChild(_NavigationBar); //ADDS NAVIGATION CLASS// _NavigationBar.name="NavBar"; } public function home() { [Code] .....
I have a .fla and one.as(DisablingButtons.as).The .fla currently has only one key frame and three movie clips.First movie clip has base class flash.display.MovieClip and class DisablingButtons.as.The other two movie clips have base class DisablingButtons and their own classes (set by flash on export). The movie clips have identical timelines, 20 frames, two motion tweens, and the only action is stop();on frames 1,5,10,15. I get two errors:5000: The class 'DisablingButtons' must subclass 'flash.display.MovieClip'and 4 copies of 1024: Overriding a function that is not marked for override (on frames 1,5,10,15 of movie clip #2)
I am importing flash.display.MovieClip and have public class DisablingButtons extends MovieClip.Code below...[code]..........
I'm having some trouble passing parameters with a function that is itself being passed as a parameter.In my application code I'm instancing that class five times:they are buttons in a menu.In that class, I've got an onRelease handler that does a number of things when a button is released, one of which is to invoke a function that is defined in the application level of the code.My problem is that I don't know how to send the function parameters.In my StandardButton class I have:
class StandardButton extends MovieClip { /* define properties */[code]..........
The function is successfully being "sent" to the StandardButton class, but without any parameters.How can I send parameters to the class instance with the way I've got this architected.
I created a movieclip animation that only activates when i rollover the movieclip button. I further extended the frames and created another frame animation that i active only when user clicks the button. So i have a roll over/out animation and click animation in the same movieclip in the same layer. Now the problem is that when i click on the button, its supposed to take me to another page, and it does, unfortunately without the click animation. That means after i click on the button its supposed to first finish the click animation and then go to another page. But when i click, it takes me to another page without showing the click animation
SO I tried the If function, but i seem to make a mistake somewhere and i dont know what to do. Now there is no error in script, but onw there is a problem in link, the button finishes the click animation but it does not go to the tarrgeted"about" frame. here's the code
I have some functions that have mouseEvents for their param and I am wondering how those can be use without the param. Meaning those functions where set up to work with buttons, but how can call those when I don't have a button to call them? Here is an example of one of the functions:
function forward(e:MouseEvent):void { ns.togglePause();
Since I have to loop through all of them. I can convert them to an array inside the function, but it would save me 10 lines if I could just enter them as an array in the function parameter (as I have 10 variables 1-10...)
So say I have a function that has some number of optional parameters but I don't like to write the function more than once. Instead just use for loop or such to iterate the parameters through and give them to that function.
Here's a raw scetch:
ActionScript Code: // stylesheet for lines var params1 = { thicknes: 1,
i am loading an image with a loader, and in onComplete function i would like to call calculateRatio function and pass it Loader.content.width and Loader.content.height so it can compare it with the current stage width and height and resize image proporcionally to fit the screen. how would i go about passing that parameters?
I have a hard time getting this Code: var whichXML:String = "category1"; loadFirstTime(whichXML); function loadFirstTime(whichXML:String):void { XMLLoader = new URLLoader(); XMLLoader.load(new URLRequest(whichXML + ".xml")); }
I'm having a problem with a menu that is loaded from a xml file. I want to control the onRelease action for every button in the menu from one XML file, but I can't seem to get it to work... The buttons in the menu each have to call a different function with parameters which are declared in the flash file. The trace output shows the right function call, but it just won't fire the function.
This is an example of one of the nodes from my XML file with the function as node attribute:
Code: function enableButtons():void { for (var i:uint=0; i<40; i++)
[Code]...
I have 40 buttons on the stage. Their names are contained in the Array musicGrid. What I'm trying to do with this code is attach an EventListener to each button so that it will call the function mgMouseBehavior with a parameter to identify the button. For example, I want the button at musicGrid[0] to call the function mgMouseBehavior(0). I want the button at musicGrid[32] to call the function mgMouseBehavior(32), and so on.
However, if you try to add parameters to mgMouseBehavior in the addEventListener, for example:
I'm attempting to write a performance testing function that can take any function, run it X times and spit out how long it took that function to run in AS3. I've got it working just fine if a function doesn't take any parameters but it comes up with an error otherwise.Here's the code:
public static function testFunction(targetFunction : Function, object : Object, ... parameters) {
I created a function to handle the size of a talk bubble for a chat application based on what's being loaded into the movie clip I want it to scale it's height that is. I have it working when like this
I want to create some functions similar to how GreenSock's tweening class works.With the optional parameters by name in brackets. {}[code]I get this error: "Parameter initializer unknown or is not a compile-time constant."Pretty sure it's the "Parameter initializer unknown", but I don't know what to do about it.
Here I've got this bit of code that works alright, but I would prefer to have the parameters that are being sent through myTween.tweenMe(_text, 40, 300, 150, 100, 4000) originate instead with the call to tweenerIt. The problem seems to be that the tweenerIt function needs to receive the e:Event parameter, which is some sort of 'behind the scenes' type of thing that I don't fully understand. If I try putting ... _text.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt(_text, 40, 300, 150, 100, 4000) and then something like.. private function tweenerIt(param1, param2, param3, etc..., e:Event):void, it doesn't work.
Code: _text.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt); } private function tweenerIt(e:Event):void {
I'm building an app with transitions out of each page. I'm using the code below to store references to a function and parameters for that function to use. Is this the best approach though?
[Code]...
So, basically, the photo_btn is writing the references and variables, telling the transition to play, when it reaches the end, it calls the function that's stored in the __func ref and uses the parameters. I'm doing it this way because I have a bunch of nav buttons that all call different functions, and this is the only way I could figure out to get transitions to play and then call the desired function at the end.
When assigning a function to onEnterFrame, for ex. onEnterFrame = someFunction, you do not include the brackets or the script will not run properly. my question is then, how can you assign a function to onEnterFrame while specifying parameters for that function? I tried onEnterFrame = someFunction(param1), but the function will only execute once.