Gonzo
Gonzo

Reputation: 1553

In flash with as3.0, I have to call a function on the main stage from a movieClip

I have to call a function that is defined on the main stage of my project, and I have to call it from a MovieClip, what can I do? I'm using flash cs5.5 and AS3.0

Upvotes: 1

Views: 5153

Answers (4)

Tareq Rahman
Tareq Rahman

Reputation: 61

if your MovieClip has a class, just add it to your main class using like:

var m:MovieClip = new MovieClip(); **addChild(m);

then you can get access into it's public function like typing:

m."functon name";

Upvotes: 0

Jeff Ward
Jeff Ward

Reputation: 19026

There are multiple ways to access the MainTimeline from objects on the stage. Probably the most reliable is 'root', but there is also 'parent' (but only if you MovieClip is a direct child of the main timeline).

// root should always work
Object(root).myFunc();

// parent will only work if your movieclip is a direct child of the main timeline
Object(parent).myFunc();

Note that you have to cast these are generic Objects (or MovieClip would work) because they return typed classes that don't have a 'myFunc' function in them.

You'll need this code on your main timeline:

function myFunc():void {
  trace("My function got called!");
}

Upvotes: 4

Ross Smith
Ross Smith

Reputation: 755

When I read your question it sounds as though you have a function defined in an action frame of your main timeline.

My answer may be out of reach for your current project, and ToddBFisher's answer is perfectly right. That said - I'm going to answer the question differently.

Instead of defining a function on the main timeline, set up a document class, define your functions there, and access the class's functions in your code. Keep as much code off your timelines as possible.

Downloadable files for Document Class example: http://www.isgoodstuff.com/2008/06/06/actionscript-30-documentclass-in-plain-english/

Setting up an AS3 class: http://www.adobe.com/devnet/flash/quickstart/creating_class_as3.html

Upvotes: 4

ToddBFisher
ToddBFisher

Reputation: 11590

Assuming your movie clip is a direct child of your main stage, in you movie clip you can do:

MovieClip(parent).theFunctionToCall();

Upvotes: 0

Related Questions