Как добавить символы в контейнер, используя 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,

Другие вопросы по тегам