РЕДАКТИРОВАТЬ # 2:
Попробуйте это:
function imgViewerLoaded(event:Event):void
{
var manager:SystemManager = event.target.content as SystemManager;
var content:ImageViewer = manager.application as ImageViewer;
addChild(viewer);
viewer.showImage();
}
Это основано на полезной информации Weltraumpirat о том, что тип контента на самом деле является объектом SystemManager. Исходя из всего, что я вижу, я думаю, что это сработает и будет немного чище. Удачи!
** конечно, обратите внимание, что вам придется изменить опубликованный MXML для реализации вашего интерфейса, так как я подозреваю, что вы уже сделали
РЕДАКТИРОВАТЬ # 1:
Исходя из ваших сообщений выше, я обнаружил, что мой код выполняет то же самое:
private function loadCompleted(event:Event):void {
currentClip = event.target.content as MovieClip;
loader.unload();
displayClip();
}
Так что вы можете попробовать просмотреть содержимое:
event.target.content
Попробуйте следующий код, чтобы увидеть, что это за тип, затем используйте эту информацию для приведения:
var contents:* = event.target.content;
var className:String = flash.utils.getQualifiedClassName( contents );
trace("Class name was: " + className);
Оттуда вы можете получить более легкий доступ к методу с помощью следующего кода:
function imgViewerLoaded(event:Event):void
{
var viewer:TypeThatYouFound = loader.content as TypeThatYouFound;
addChild(viewer);
viewer.showImage();
}
Конечно, может оказаться, что содержимое события точно такое же, как содержимое загрузчика. В этом случае этот подход не был бы значительно лучше. Но оно того стоит.
Надеюсь, это поможет,
~ gMale
Ok. Поэтому я даже не буду спрашивать, почему вы делаете это в обратном порядке (обычно вы переходите от флеш-памяти к гибкой, а не наоборот. Обычно SWF-файлы импортируются, а не Flex-SWF-файлы).
Первое, что приходит на ум, это то, что вы, вероятно, не создаете класс для своего кода Flex. Чтобы раскрыть ваши функции, вам нужно сообщить кому-то, что ваш объект отличается от обычного SimpleImageViewer.
В зависимости от того, как вы проектировали вещи, вам может потребоваться создать собственный класс, такой как
public class MySimpleImageViewer extends SimpleImageViewer {
public function showImage(source:String, heading:String = ""):void {
//Show the image
}
}
Затем пусть ваш файл MXML создает это с использованием следующего синтаксиса:
<local:MySimpleImageViewer />
Поскольку ваш подход немного неортодоксален, трудно сказать, что именно вам нужно. Если это не поможет, попробуйте опубликовать свой код Flex, и мы сможем перейти оттуда ...
Надеюсь, это поможет,
~ gMale