ActionScript 3.0 загружает внешнее изображение в контейнер movieclip?

#flash #actionscript-3 #filereference #addchild

#flash #actionscript-3 #ссылка на файл #addchild

Вопрос:

Я новичок в AS3, и мне нужна помощь с инструментом преобразования Senocular (версия AS3)

У меня возникли проблемы с загрузкой внешнего изображения таким образом, что я могу преобразовать с помощью класса инструментов Senocular Transform.

Мне удалось загрузить изображение, но класс transform, похоже, не хочет его захватывать.

 var fileRef:FileReference = new FileReference();
MovieClip(root).loadBtn.addEventListener(MouseEvent.CLICK, openClick);

function openClick(evt:MouseEvent):void {
    fileRef.addEventListener(Event.SELECT, selectHandler);
    fileRef.addEventListener(Event.COMPLETE, completeHandler);
    var fileFilter:FileFilter = new FileFilter("Images","*.jpg;*.jpeg;*.gif;*.png");
    fileRef.browse([fileFilter]);
}

function selectHandler(event:Event):void {
    fileRef.load();
}

function completeHandler(event:Event):void {
    var image:Loader = new Loader();
    var imgSprite:Sprite = new Sprite();
    image.loadBytes(fileRef.data);
    imgSprite.addChild(image);
    addChild(imgSprite);
    imgSprite.addEventListener(MouseEvent.MOUSE_DOWN, select);
    imgSprite.x=200;
    imgSprite.y=200;
}
  

Я пытаюсь загрузить изображение с моего HD в загрузчик, затем спрайт, затем пустой контейнер MovieClip на рабочей площадке…

Кто-нибудь может указать мне правильное направление?

Комментарии:

1. Попробуйте добавить image.addEventListener(Event.COMPLETE, onImageLoaded) , чтобы увидеть, успешно ли оно загрузилось. Кроме того, если вы зададите ширину или высоту изображения (даже косвенно через родительский файл) перед его загрузкой, оно будет потеряно из-за преобразования матрицы f @ amp;k-up.

Ответ №1:

Я думаю, вам следует подождать, пока ЗАГРУЗЧИК загрузит полный байт, прежде чем добавлять их в sprite, потому что для загрузки огромного файла в приложение требуется время,

вот так

 var image:Loader = new Loader();
image.contentLoaderInfo.addEventListener(Event.COMPLETE, imageloaded);
image.loadBytes(fileRef.data);
  

и обработчик событий как

 private function imageloaded(event:Event):void
{
    var image:Loader = event.currentTarget.loader as Loader;
    var imgSprite:Sprite = new Sprite();
        imgSprite.addChild(image);
        addChild(imgSprite);
}
  

вы также можете использовать его обработчик ошибок для управления ошибками

Надеется, что это поможет