Во флеше с as3.0 мне нужно вызвать функцию на главной сцене из мувиклипа - PullRequest
1 голос
/ 03 февраля 2012

Мне нужно вызвать функцию, которая определена на главной стадии моего проекта, и я должен вызвать ее из MovieClip, что я могу сделать? Я использую flash cs5.5 и AS3.0

Ответы [ 4 ]

4 голосов
/ 03 февраля 2012

Когда я читаю ваш вопрос, это звучит так, как будто у вас есть функция, определенная в кадре действия вашей основной временной шкалы.

Мой ответ может быть недоступен для вашего текущего проекта, и ответ ToddBFisher совершенно верен,Тем не менее, я собираюсь ответить на вопрос по-другому.

Вместо определения функции на главной временной шкале, установите класс документа, определите там свои функции и получите доступ к функциям класса в своем коде.Сохраняйте как можно больше кода из своих временных шкал.

Загружаемые файлы для примера класса документа: http://www.isgoodstuff.com/2008/06/06/actionscript-30-documentclass-in-plain-english/

Настройка класса AS3: http://www.adobe.com/devnet/flash/quickstart/creating_class_as3.html

3 голосов
/ 03 февраля 2012

Есть несколько способов получить доступ к MainTimeline из объектов на сцене.Вероятно, наиболее надежным является «root», но есть и «parent» (но только если вы MovieClip - прямой дочерний элемент основной временной шкалы).

// 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();

Обратите внимание, что вы должны использовать эти примитивыОбъекты (или MovieClip будут работать), потому что они возвращают типизированные классы, в которых нет функции myFunc.

Вам понадобится этот код на основной временной шкале:

function myFunc():void {
  trace("My function got called!");
}
0 голосов
/ 25 декабря 2012

если у вашего MovieClip есть класс, просто добавьте его в свой основной класс, используя:

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

, затем вы можете получить доступ к его общедоступной функции, такой как:

0 голосов
/ 03 февраля 2012

Предполагая, что ваш мувиклип является прямым потомком вашей главной сцены, в вашем мувиклипе вы можете сделать:

MovieClip(parent).theFunctionToCall();
...