джаваскрипт мольберт onPress увеличить круг изображения

Работая с javascript, библиотекой Easeljs и createjs, мне нужна помощь. моя программа рисует круги и заливает их цветом. также с помощью тикера они двигаются, а с некоторыми операторами if они отскакивают от стенок окна. Круги создаются динамически, и количество кругов каждый раз разное.

Теперь мне нужно реализовать функцию, чтобы круги увеличивались при нажатии на них. Их радиус должен увеличиваться на 1 пиксель каждые 30 мс. Я не знаю, как это сделать. 1. Используете ли вы для этого onPress? Какие обратные вызовы мне нужно использовать и как я узнаю, что мышь отпущена и круг может перестать расти? 2. мне нужно удалить кругОбъект из моего CirclesArray или достаточно удалить его со сцены и нарисовать их снова? Я отчаянно нуждаюсь в помощи, я был бы рад, если бы кто-нибудь мог дать мне некоторые подсказки!

Привет Т


person user1071891    schedule 28.01.2013    source источник


Ответы (1)


С предоставленной вами информацией я бы посоветовал вам взглянуть на этот пример EaselJS на github: https://github.com/CreateJS/EaselJS/blob/master/examples/DragAndDrop_hitArea.html Метод onPress используется таким образом, что вы, вероятно, можете скопировать его как есть.

Ваш может выглядеть так:

function(target){
    target.onPress = function(evt) {
        target.grow = true; //or a grow-factor or so
        evt.onMouseUp = function(ev) {
            target.grow = false;
        }
    }
}(circle);

и в своей тик-функции вы просматриваете все круги, проверяете их grow==true и увеличиваете их радиус, если это так

И 2: все ваши CircleObjects являются createjs.Shape правильно? Вам не нужно удалять их со сцены или из массива, вы можете использовать circle.graphics.clear();, а затем перерисовать круг с новым радиусом.

person olsn    schedule 29.01.2013
comment
отлично, я узнал сам, но это именно то, что я сделал :9 - person user1071891; 30.01.2013
comment
Как я могу проверить в Easeljs, касается ли один объект другого? мне нужно быть предупрежденным, если выбранный объект круга касается другого. как? - person user1071891; 30.01.2013
comment
самым простым способом для кругов, вероятно, будет обнаружение столкновений на основе расстояния: wiki.starling-framework.org /tutorials/basic_collision_detection (это не JS, но метод идентичен, это в основном Pythagoras) - person olsn; 30.01.2013