Flash :: Call Parents Function From Child?
Jan 18, 2011My parent ActionScript3 file has functions like these:
package
{
*lots of import.*
public class Tabu extends MovieClip
{
[Code]...
My parent ActionScript3 file has functions like these:
package
{
*lots of import.*
public class Tabu extends MovieClip
{
[Code]...
I have two child classes ClassA and ClassB both inherit the same base class.
I also have a function that has a parameter which could be an instance of either child classes.
function Test(instance):void //instance is either a ClassA or ClassB instance
{
instance.DoSomething();
}
However, when I run the test, it's always the BaseClass.DoSomething() get called. How can I use the same function (DoSomething()), but call child class function instead of the base class one?
I'm trying to call a function in one child class (Circle.as) from another child class (Wedge.as). Circle.as is instantiated by the document class (Tree.as), and Wedge.as is instantiated by Circle.as. How do I do this? This is my code:
Tree.as
package com.treediagram
{
public class Tree extends MovieClip
{
[code]....
How to call a function in a Class from another Class?but it was a bit hard to follow as it relates to my problem. One of the solutions worked, but was commented as being bad form, and another did not work, so I want to make sure I structure my code properly.
I'm working on a web app built in Flash AS3. At a high level - the app has a main screen, and several "modal dialog"-type screens that pop-up to manage various user interactions. (This is a similar pattern I use in most of the apps I develop...) Typically - when the user clicks a UI control on the dialog screen (e.g., button, text box, slider bar, etc.) - the main screen needs to react, or manage the consequences. It seems like there are two general ways to handle this: Have the dialog screen dispatch events that the main screen listens for Allow the dialog screen to call functions in the main screen when those controls are clicked (which requires that the dialog screen maintain a reference to the main screen, and that the functions in the main screen are public)
In general - I understand that one of the key benefits of the first method is that the dialog screen isn't so tightly coupled; it's only responsibility is to broadcast the event. This would allow me to more easily use the dialog class in other contexts, or applications. But for many RIAs I develop - a particular screen is SO SPECIFIC to the the application that there's no chance I'd ever reuse it in another application. So, the "easy re-use" benefit is minimal. So - if you eliminate that benefit - which method is actually better? (More performant, less resource-intensive?) For example - if I use events, then Flash needs to manage many listeners for events that may never occur. So - it might be more efficient if the dialog window could call a function in the main screen directly, instead of dispatching an event.
here is a parent swf loads a child swf file and there is a button/movieclip in child swf e.g childBtn_mc, now whener i click this childbtn_mc in parent swf (as child swf is loaded in its parent swf) i want to through a function in parent swf.
for ex.
child swf AS:
childBtn_mc.onRelease = childBtnClicked;
function childBtnClicked(){
trace("calling from child");
[Code]....
how do I call a function defined in a child ... in AS2 (flash 8.0)
I have this situation: Movieclip "Washformulas" (not in root but works 'standalone' from itsself) having a couple of instances of "Bullet"-movieclips, named "Bullet1", Bullet2,...
For simplicity "Bullet" is 1 frame, and has this code :
ActionScript Code:
function testf()
{
trace("test");
}
How do I call that function from "Washformulas"?
Bullet1.testf();
I have a function (let's call it testFunction for right now ) on the actions layer in the main timeline There is a movie clip with 15 frames long in the library
i want to add a child of the movie clip on the stage, and call testFunction when it finishes playing
how can i do? i tried to call it in the child but nothing works
Or, is there any way to show child on the stage for only a period of time like 1 second and then remove it automaticly?
This is my first post. I'm new to actionscript, but not to programming. I hope to learn a lot from these forums. To the point: I decided a few days ago that I wanted to create a flash game. I'm taking an object-oriented approach to the game design since that is what I know. The issue I am having is that I have a class called Hero that inherits from a class called Entity. Now my issue is that I don't want Hero to call the Entities class constructor when I initialize a new Entity.
View 5 RepliesThe problem is, i need to detect the quantity of movieclips that a child movie clip is over A movie clip is over several boxes and that boxes are MC, in the image for example when i drag the child MC, this is over some movie clips but i cant detect which movieclips are.
View 1 RepliesIs it possible to call a child function from within the parent? I know to go child > parent, you can do parentApplication.functionName(parameters);, but what about going the other way... that is parent > child?
View 2 RepliesI have one problem I am not able to solve at the moment and probably someone will have quick answer. I have a .fla file with with several layers let choose one line...
Main Scene - Scene1
Fisrt Layer - PageGalerieVeci (instanceName PageGalerieVeci_layout)
in PageGalerieVeci layer are two other layers
[code]......
this is the code i found out on the web to call a function in the parent swf from the loaded child swf.
in the child swf:
Code: Select allpanel.next_mc.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void{
MovieClip(this.parent.parent).parentFunction();
}
[Code].....
how can i call a function in a child swf that has been loaded in externally? basically ive got a holder and then i loop through a list and add that many slides to the holder each slide has an external swf loaded in and one of them i need to be able to call a function from the parent
View 1 RepliesOk every time I think I understand the DisplayObject model i find something else that seems like it should work but fails. Am I correct that if I create a sprite then create another sprite and add it as a child the original parent sprite will show a height of 0... In my case i have three classes that all extend Sprite and each one is creating the next with the "youngest child" being a class that adds an image to its "stage". I can see the image height fine but its holder does not nor does its holders parent... im having a real moment here as I debate if im just stupid and missing the obvious way to do this or if I really have to add a bunch of getters and setters to see the height that includes children.Maybe I am thinking of this too much like a CSS block element but it just seems like it should work this way...for example
parent "holder" <- child "slide" <- child "image"
holder.height == 0
slide.height == 0
[code].....
I have a main MovieClip that creates a new instance of an imported class which is a page in the application. This class tries to call a function on the main MovieClip and it's not finding it. I've done this in the past without any problems with separate swf files and loaders, and with movieclips in a library. I'm at a loss on how to resolve this. Here's what I'm doing (simplified for posting):
[Code]....
I have a child swf loaded that needs to receive an array that the parent creates in a function. The child swf must be the one to call that function.
View 3 Repliesin my last flash website i built, i created a gallery, my way of creating pages in flash are to have a movieclip as a page, so to make it easier to switch between the paged (page switching functionality is purely done in AS3). the gallery was a problem however, i needed the pictures to appear as popups, however to add the child from inside the movieclip, any masks i use would prevent the popup from leaving the immediate area of the page. so to get around this problem i basically used: MovieClip(root).addChild()
in my opinion this was a mistake, because it created other problems. the problem was that the popups are still connected to the page, even though they are outside of it, which meant that using removeChild() to switch from the gallery, meant that any popup that were still active, 'DIDNT' dissapear, and worse than that, because the page was removed, the popups lost any AS connected to them, which meant the couldnt be removed at all.
[Code]...
public var blob:Blob = new Blob()
addChild.child(blob)
i get this error Call to a possibly undefined method child through a reference with static type Function.
I have load child swf in parent swf, from child swf i am trying to run my parent swffunction I am trying this code
MovieClip(parent).testfun()
but this code is giving error.
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::Loader@2b1aa061
[code].....
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.
Main class :
Code:
package {
import flash.display.Sprite;
import com.childClass;
[Code].....
I need to get a javascript var in my Flash application. I like to be able to just set a variable in the javascript (client constraints) rather than define a function.
Can this be done? I am trying to use the ExternalInterface.call()
AS:
ExternalInterface.call("function(){return window.someVar}", null);
JS:
var someVar = "Test";
This does not work and I suspect it is because the ExternalInterface.call() does not like the anonymous function.
I have a function defined in JavaScript like so:
function fadeBack() {
alert("fadeBack called");
};
I call that function from my Flash file like so:
import flash.external.*;
flash.external.ExternalInterface.call("fadeBack");
This works in both Safari and Chrome, but for some reason Firefox won't ever call the function. Still, I can't figure this out. How can I fix it?
I'm looking for a way to call a method for ALL children elements of a DataGroup from the DataGroup. The problem is that when using the creationComplete event to call a method of a child that method is only called once for every itemrenderer (child) object. after the item was drawn once. now i want the children component to call a function everytime the datagroup containing it changes its data. Using "updateComplete" or "dataChange" inside the children (itemrenderer) component would work, BUT "updateComplete" and "dataChange" is called everytime i change the view (e.g. scroll my list) - thats not what i want.
[Code]...
I'm using this code to call a actionscript 3 function through javascript
[URL}
and I want to call the acrionscript 3 function from a javascript function, but not on a button action.
actionscript code:
//call to javascript
ExternalInterface.call("sendToJavaScript");
//call from javascript
[Code]....
I have a child/ Background class there must call a metode in the main class.But this fail coms: BackGround.as, Line 35.1061: Call to a possibly undefined method resizeHandler through a reference with static type flash.displayisplayObjectContainer.[code]
View 3 RepliesI'm trying to use ExternalInterface.Call to call a JavaScript function to launch a lightbox window. So far I have this:
AS3:
flash.external.ExternalInterface.call("launchLB", "" + aUrl + "");
JavaScript:
function launchLB(url) {
alert(url);
[Code]....
I get the alert but I can't get the lightbox window to display. When my as code makes the ExternalInterface call I get what looks like a page refresh and a blank browser window.
I have an enterFrame action that I use on a graphic:
[Code]....
Because I want to use the above code more than a few times, I tried to make it a function.
[Code]....
But for some reason the function call does not work when I call it via an action on a graphic where initially the code worked when it was explicitly written and not called as a function.
Code:
onClipEvent (enterFrame) {
fadeOut();
}
why this is not working.I have an application with a new class I just created. The class loads, but will not call it's own internal function.
package com.parkerandkent.components.classic.photogallery {
import caurina.transitions.Tweener;
import flash.display.MovieClip;[code]....
"Test 2" will not fire here.And I get this error message:
CallTag.as , Line 10 1180: Call to a possibly undefined method init.
Does anyone know if there is a way to call a dispatchEvent call from inside of a static function?
View 2 RepliesI have a main.swf. I have loaded two child-SWFs into it, child1.swf and child2.swf.... There´s a videoclip inside child1.swf, can I stop that video from child2.swf?
View 2 Replies