2013-02-20 4 views
0

Я хочу уменьшить ширину прямоугольника каждый галочку в анимации.Как уменьшить ширину прямоугольника в анимации EaselJS

В методе Init(), я сначала создать прямоугольник:

var graphics = new createjs.Graphics().beginFill("green").drawRect(650, 90, 280, 8); 
var shape = new createjs.Shape(graphics); 
stage.addChild(shape); 

Как я могу получить доступ к ширине прямоугольника в клеща()?

ответ

3

Простой ответ: вы не можете сделать это напрямую!

Есть два способа сделать это:

1) Через Scalex и твин

var tween = createjs.Tween.get(shape).to({scaleX:0.5 }, 1000); 

2) Через перерисовки каждый кадр

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

В то время как путь 1), вероятно, проще, масштабирование мощь результат в размытых краев, вы должны проверить, что в вашем случае.

+0

Спасибо за ответ! Я хочу убедиться, что я знаю, как перерисовывать каждый кадр, прежде чем я перейду к анимации. Я попытался перерисовать прямоугольник каждого кадра в тике, и он работает, но как очистить существующий прямоугольник в начале каждого тика? Я попробовал stage.removeChild (shape) без везения. – Bashevis

+2

Просто используйте 'shape.graphics.clear()' для очистки существующего прямоугольника, а затем используйте существующую форму для рисования новой: 'shape.graphics.beginFill (« green »). Dr ... ect' (http : //www.createjs.com/Docs/EaselJS/classes/Graphics.html#method_clear) – olsn

+0

Для тех, кто наткнулся на это, есть более простой способ, чем перерисовка целиком: команды. http://blog.createjs.com/new-command-approach-to-easeljs-graphics/ – Lanny

Смежные вопросы