Как добавить символы в контейнер, используя createJS во Flash (или Animate CC)
Я сделал это в сценарии действия, но не могу понять, как это сделать в javascript для проекта html5 canvas в Animate CC.
По сути, у меня есть две кнопки на сцене, которые добавляют экземпляр символа в контейнер. Символы, добавленные в контейнер, содержат скрипт действия, который делает их перетаскиваемыми. Существует также кнопка сброса, которая очищает опустошает контейнер. Я пытаюсь выяснить, как сделать то же самое в JavaScript (в частности, добавив экземпляры символов в контейнер). Вот мой сценарий действия на главной временной шкале:
import flash.display.Sprite;
//creates container that we'll add instances to
var container:Sprite = new Sprite();
addChild(container);
container.x = 577;
container.y = 500;
//*******Button Man 1******//
slider.btn_man1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
//adds symbol instance of man1_Instance to the container
var man1:man1_Instance = new man1_Instance();
container.addChild(man1);
}
//*******Button Man 2******//
slider.btn_man2.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler1);
function fl_MouseClickHandler1(event:MouseEvent):void
{
//adds symbol instance of man2_Instance to the container
var man2:man2_Instance = new man2_Instance();
container.addChild(man2);
}
//****Reset button****//
btn_reset.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_4);
function fl_MouseClickHandler_4(event:MouseEvent):void
{
container.removeChildren();
}
1 ответ
Большая часть вашего кода в порядке, просто нужно JavaScript-ified (удалить типы и возвращаемые значения).
//creates container that we'll add instances to
var container = new createjs.Container();
stage.addChild(container); // Will need a reference to the stage.
container.x = 577;
container.y = 500;
//*******Button Man 1******//
slider.btn_man1.addEventListener("click", fl_MouseClickHandler);
function fl_MouseClickHandler(event)
{
//adds symbol instance of man1_Instance to the container
var man1 = new lib.man1_Instance(); // Symbols are part of the lib object
container.addChild(man1);
}
//*******Button Man 2******//
slider.btn_man2.addEventListener("click", fl_MouseClickHandler1);
function fl_MouseClickHandler1(event)
{
//adds symbol instance of man2_Instance to the container
var man2 = new lib.man2_Instance();
container.addChild(man2);
}
//****Reset button****//
btn_reset.addEventListener("click", fl_MouseClickHandler_4);
function fl_MouseClickHandler_4(event:MouseEvent):void
{
container.removeAllChildren();
}
Вам нужно будет обратиться к документации CreateJS относительно классов и API, которые вам нужны, но она очень похожа на Flash. Основная проблема с переносом AS3 на JavaScript - это область видимости, поскольку переменные (особенно переменные frame-script в Flash/Animate) могут быть определены в this
,