Загрузить файл HTML5 в холст HTML5

Я хочу создать приложения с Flash CC и createJS.

Это просто приложения для слайдов презентаций. Я хочу, чтобы в моих приложениях был файл холста Master Slide (например, MasterSlide.html), он будет содержать любые другие слайды из внешнего html-файла (например, slide1.htlm, slide2.html ... etc).

Проблема в том, как я могу загрузить внешний файл слайдов в MasterSlide.html с помощью createJS (в Actionscript вы можете использовать loader для загрузки внешнего swf)? Если у вас есть какие-либо решения, я был бы признателен.


person Arfian90    schedule 16.03.2015    source источник


Ответы (2)


Вы можете загрузить файл JavaScript, сгенерированный Flash CC (самый простой способ — использовать PreloadJS), а затем создать экземпляр «этапа» MovieClip (названный в честь файла Flash).

var queue = new createjs.LoadQueue();
queue.on("load", handleComplete);
queue.loadFile("MySlide.js");

function handleComplete(event) {
    var exportRoot = new lib.MySlide();
    stage.addChild(exportRoot);
}

К сожалению, все не так просто:

  1. Это не будет предварительно загружать изображения или аудио. Вы должны были бы сделать это в первую очередь. Экспортированный HTML-код, который генерирует Flash, должен показать вам, как это происходит.
  2. Все библиотеки в настоящее время хранятся в пространстве имен lib, поэтому вам придется либо изменить это в настройках экспорта Flash (для каждого файла), либо управлять им самостоятельно. Один из способов сделать это — переназначить объект lib после загрузки файла, а затем установить для него значение null.

Вот краткий пример:

function handleComplete(event) {
    myModules[currentModuleId] = lib;
    lib = null; // Wipe this, it gets auto-created the next time a module loads.
}

Мы использовали этот подход с большим успехом. Это гораздо более ручная операция, чем Flash Loader, но ее можно сделать.

Надеюсь это поможет!

person Lanny    schedule 16.03.2015
comment
Большое спасибо Лэнни. Я знаю, что нет простого способа сделать это, но я попытаюсь это сделать. Я очень ценю вашу помощь. - person Arfian90; 18.03.2015
comment
@Lanny - спасибо за этот код ... отлично работает для загрузки внешних библиотек. Хотя у меня есть проблема с загруженными дочерними элементами MC при переходе ко второму фрейму - они не определены, в то время как на дочерние элементы первого фрейма все еще можно сослаться: у меня есть вопрос, я был бы очень признателен за помощь! : stackoverflow.com/questions/42552894/ - person oshevans; 02.03.2017
comment
В настоящее время в Animate, если вы создаете экземпляр клипа, его дочерние элементы недоступны сразу. Вы можете обойти это, вызвав clip.gotoAndStop(0) для принудительного обновления. Надеюсь, это поможет. - person Lanny; 02.03.2017
comment
Спасибо @Lanny ... Я обновил вопрос (создал новый), так как обнаружил, что эта проблема также возникает независимо от того, создается ли экземпляр MC из загруженной библиотеки - gotoAndStop (0), к сожалению, не имеет значения. | Мой новый вопрос здесь (если вы хотите прочитать;) не обновляется после gotoandstop"> stackoverflow.com/questions/42566953/ - person oshevans; 03.03.2017
comment
Спасибо, это мне очень помогло. - person gMirian; 20.02.2019
comment
Не волнуйтесь! Обратите внимание, что библиотеки в Animate 2017+ больше не хранятся в глобальном объекте lib и используют поиск на основе идентификатора. Это было сделано, чтобы обойти это ограничение. - person Lanny; 20.02.2019
comment
@Lanny, ваш пример помог мне воспроизвести старый добрый SWF AS2 в функции SWF loadMovie, вам просто нужно получить дочернюю библиотеку с этим идентификатором, и она инкапсулирована :) - person gMirian; 22.02.2019

это волшебство, вы можете загрузить другой файл в один html-файл

замените веб-код кодом каталога папки. и он будет работать, и он загрузится на вашу сцену

man.addEventListener('click', fl_MouseClickHandler_2);

function fl_MouseClickHandler_2(event)
{
window.open("http://graphicscoder.org/", "_self");
}

поэтому я заменил экспорт flash cc файлом каталога моей папки. это волшебство, что файл загружается на сцене, когда я нажимаю на мувиклип «человек» на сцене. это похоже на загрузку другого .swf в один .swf в as3. более легко . на самом деле вы можете создать большой проект электронного обучения/игры со многими этапами, используя createjs.

man.addEventListener('click', fl_MouseClickHandler_2);

function fl_MouseClickHandler_2(event)
{
window.open("akun/cuen.html", "_self");
}
person Salma    schedule 03.04.2016