#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);
}
вы также можете использовать его обработчик ошибок для управления ошибками
Надеется, что это поможет