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

前端 未结 4 1741
盖世英雄少女心
盖世英雄少女心 2020-12-22 04:07

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

相关标签:
4条回答
  • 2020-12-22 04:32

    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";

    0 讨论(0)
  • 2020-12-22 04:35

    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

    0 讨论(0)
  • 2020-12-22 04:42

    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!");
    }
    
    0 讨论(0)
  • 2020-12-22 04:47

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

    MovieClip(parent).theFunctionToCall();
    
    0 讨论(0)
提交回复
热议问题