Я пишу образовательное программное обеспечение, которое использует единственное swf-приложение, которое загружает SWF-файлы внешнего «темы» (содержащие элементы библиотеки, относящиеся к теме) , Каждый из этих внешних SWF-файлов темы также использует пользовательские классы, которые разрешают вычисления, специфичные для этой темы (например, тригонометрический класс для файла темы trigonometry.swf).ActionScript 3.0, ссылающийся на пользовательский класс основного swf из пользовательского класса загруженного swf
Я хочу, чтобы класс тригонометрии тригонометрии.swf мог ссылаться на собственный метод класса, который существует в основном «приложении» swf. Если это помогает узнать контекст, я хочу, чтобы пользователь, работающий над тригонометрией, мог ввести триггерную функцию, считающую себя правильной (sin, cos или tan) и «проверить», чтобы убедиться, что они правы. Метод «указать_right_wrong» существует в пользовательском классе «грейдер» основного swf-приложения (так что любые изменения, которые я делаю для этого класса, будут обновляться по всем темам). Итак ... как я могу ссылаться на собственный метод класса основного swf FROM из собственного настраиваемого класса внешнего SWF-файла?
У меня есть результат, когда я импортирую пользовательский класс «грейдер» в каждую «тему» swf и ссылаюсь на него напрямую, но я не хочу повторно публиковать каждую тему swf, если я вношу изменения к классу «грейдер». Таким образом, я пытаюсь, чтобы каждая тема могла ссылаться на пользовательский класс «грейдер», когда он существует в основном «приложении» swf.
Ошибка, возникающая при попытке использовать варианты родительского или parent.parent: property grader_class not found on flash.display.Stage
(для родителя) и Cannot access a property or method of a null object reference.
(при использовании parent.parent).
Благодарим за помощь, которую вы можете предоставить.
Вы должны быть в состоянии получить доступ к родительскому классу через в ApplicationDomain в [getDefinition()] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript /3/flash/system/ApplicationDomain.html#getDefinition()). Что-то вроде: 'yourMasterSWFReference.loaderInfo.applicationDomain.getDefinition (" the.qualified.ClassYouNeed ")'. Другой вариант, возможно, более чистый - ваш загруженный swf отправляет событие или сигнал с данными, необходимыми для проверки/проверки, и мастер swf прослушивает это, а в обработчике обрабатывает запрос и отправляет результат. –