Вопрос

Я использую Easeljs, чтобы построить определенную структуру. Внутри этой структуры есть много контейнеров и форм.

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

Я видел, что я могу использовать кэш для этой цели, поэтому я следую на примере в таких документах: myshape.cheave (150, 150, 100, 100, 1);Однако ничего не происходит, и я не вижу форму. Я должен сказать, что форма проживает внутри контейнера, который добавляется к сцене.

Вот соответствующий код:

Введите код здесь

var g = curShape.graphics.clone().clear();

                        g.beginFill("#2aa4eb");
                        g.drawRoundRect(0, 0, curShape.width, curShape.height, 1.5);
                        //g.drawRect(0, 0, curShape.width + 2, curShape.height + 2);
                        g.endFill();
                        g.endStroke();
                        var newShape= new createjs.Shape(g);
                        newShape.cache(150, 150, 100, 100, 2);
.

Любая помощь будет оценена

Это было полезно?

Решение

Вы кэшируете на X: 150 и Y: 150, но вы рисуете свои формы при 0,0.Если ваша форма меньше 150x150, то она ничего не будет кэшировать.Измените свой кеш до 0,0, и все будет хорошо.

Дополнительно вы не предоставляете 5-й параметр (уголльный радиус) в вызов Drawroundrect, что сделает его сбой.Вот быстрый образец с модифицированной версией вашего кода.

http://jsfiddle.net/lnxvg/

var stage = new createjs.Stage("canvas");

var g = new createjs.Graphics();

g.beginFill("#2aa4eb");
g.drawRoundRect(0, 0, 300, 200, 5);
var newShape = new createjs.Shape(g);
//newShape.cache(150, 150, 100, 100, 2);
newShape.cache(0, 0, 100, 100, 2);

stage.addChild(newShape);
stage.update();
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top