Action Script 3 новый загрузчик - PullRequest
1 голос
/ 22 ноября 2011

Я пересматривал некоторый код для простого средства просмотра изображений, которое я создал в Action Script 2.0, теперь выполняющего ту же задачу в AS3.В настоящее время я хорошо знаю, что команда .loadMovie больше не используется.После многочисленных попыток найти решение я пришел в себя.

На данный момент у меня на сцене есть символ фрагмента ролика (target_mc), который я хочу загружать в формате JPEG из внешнего файла, когда я нажимаю кнопку мыши над кнопкой.Можно ли привести пример того, как к этому следует подходить, используя переменную «новая загрузка». В версии AS2 я также использовал (при выпуске) в коде кнопки.

training_btn - это экземпляр кнопки.

Пожалуйста, посмотрите пример моего кода ниже:

training_btn.addEventListener(MouseEvent.CLICK, imageOver);
function imageOver(evt:MouseEvent) {    
    this.target_mc.loadMovie("galleryimage/p_traininglink.jpg")
}

Любые идеи будут очень полезны.

Уэйн

Ответы [ 4 ]

2 голосов
/ 22 ноября 2011

Здесь, в Республике Кодекс - это отличное пошаговое руководство по работе с классом загрузчика в as3

1 голос
/ 22 ноября 2011

Yeap

 training_btn.addEventListener (MouseEvent.MOUSE_UP, onMouseUp);

 function onMouseUp (evt:MouseEvent):void {
    var my_loader:Loader = new Loader();
    my_loader.load(new URLRequest("myPhoto.jpg"));
    target_mc.addChild(my_loader);

 }
0 голосов
/ 22 ноября 2011

Вероятно, было бы лучше создать класс, который бы обрабатывал все это, но, чтобы ответить на ваш вопрос, ваш код будет выглядеть примерно так:

var outLoader:Loader = new Loader();
outLoader.load(new URLRequest("outImage.jpg"));

var overLoader:Loader = new Loader();
overLoader.load(new URLRequest("overImage.jpg"));
overLoader.visible = false;

var training_btn:Sprite = new Sprite();
training_btn.addChild(outLoader);
training_btn.addChild(overLoader);
training_btn.buttonMode = true;
training_btn.mouseChildren = false;
training_btn.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
training_btn.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
addChild(training_btn);

function rollOverHandler(e:MouseEvent):void {
    overLoader.visible = true;
}

function rollOutHandler(e:MouseEvent):void {
    overLoader.visible = false;
}
0 голосов
/ 22 ноября 2011

Таким образом, в целом вся структура загрузчика изменяется между AS 2 и 3.

Теперь вам нужно создать другой объект, который загружает контент.

var loader:Loader = new Loader();

Чем выможет сделать две вещи:

  1. Добавить прослушиватель событий и затем запустить загрузку
  2. Запустить загрузку и добавить загрузчик на сцену

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

1.

// add the listener
laoder.contentLoaderInfo.addEventListener( Event.Complete, onLoadComplete );
// trigger the load (remember: the url is alwais a URLRequest object)
loader.load( new URLRequest("path_to_file") );
// additional var for storing the content (only the content, without the loader)
var content:Bitmap;

function onLoadComplete( e:Event ):void{
content = e.target.content as Bitmap;
// you could use also:
// content = loader.content as Bitmap;

// you can do some modifications before displaying the content

// and finally add it to the display list
this.target_mc.addChild( content );
}

2)

// trigger the load (remember: the url is alwais a URLRequest object)
loader.load( new URLRequest("path_to_file") );

this.target_mc.addChild( loader );

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

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

...