2013-10-10 1 views
0

На моем экране у меня есть 10 изображений и 6 текстов. Я знаю, что каждый раз, когда вы вызываете «stage.update()», отображается экран с расширенным представлением.Как создать «stage.update()» исключительно для объекта?

У меня есть только два объекта, которые нуждаются в постоянной «stage.update()». Первый - хронометр, который требует каждую секунду для обновления текста, а второй - изображение, которое можно перетаскивать по экрану.

Как создать «stage.update()» исключительно для объекта?


Попытки:

  1. Я сделал массив "стадии" для одного холста:

    canvas = document.getElementsByTagName ('canvas') [0]; 
    stage['full'] = new createjs.Stage(canvas); 
    stage['chronometer'] = new createjs.Stage(canvas); 
    

    Проблема, которая при выполнении, один отменяет другой:

    stage ['full']. update(); 
    stage ['chronometer']. update(); 
    
  2. Я попытался создать Контейнер.

    containerTest = new createjs.Container(); 
    stage.addChild(containerTest); 
    

    Проблема? Не удалось обновить только то, что находится в контейнере.

ответ

0

С линеечку и счетчик, я думаю, что вы можете сделать свой материал:

var counter = 0; 
createjs.Ticker.addEventListener("tick", handleTick); 
var chronometer = ... 
chronometer.cache(xChrono,yChrono,widthChrono,heightChrono); 

function handleTick(event) { 
    // handle your drag and drop 
    // ... 
    if (counter == maxValue) { // maxValue = 1000/createjs.Ticker.getInterval() 
     // redraw your chronometer 
     // ... 
     counter = 0; 
     chronometer.updateCache(); 
    } else { 
     counter++; 
    } 
    stage.update(); 
} 
+0

Это более или менее то, что я делаю. Однако каждое изменение в хронометре под управлением «stage.update()» снова отображает весь экран. В другом форуме указали на создание двух «холстов» со «сценой» для каждого, но не знаю, какой вариант более дорогостоящий для обработки. –

+0

Возможно, «DisplayObject.cache()» - это тот метод, который вы ищете. Это позволяет предотвратить повторное отображение кэшированного содержимого каждым тиком. При этом вы можете «кэшировать» свой объект хронометра, а затем обновлять этот кеш каждую секунду. –

+0

Интересно. Не могли бы вы привести пример? –