2013-08-06 1 views
0

У меня есть код, который рисует кучу настраиваемых фигур из xml ... Я хочу, чтобы каждая форма была выбрана/де-выбираема, изменяя цвет объекта и изменяя backk все другие цвета, когда что-то меняется, но мои коды сломаны, но я не получаю никаких ошибок или ничего, что просто не работает.мои формы не меняют цвета Я не уверен, почему

 var graphicsShape 

function drawLayer(layer){ 
    for (var i =0; i < xmlDoc.getElementsByTagName("polygon").length; i++) 
     { 
      if (layer == xmlDoc.getElementsByTagName("polygon")[i].childNodes[0].attributes[4].value) 
       { drawSegment(i); 
       } 
     } 

    } 
    // layer = index z  

function drawSegment(a){ 

    var vertexList = xmlDoc.getElementsByTagName("polygon")[a].childNodes; 
    var graphicsObject = new createjs.Graphics(); 

    graphicsShape = new createjs.Shape(graphicsObject); 



    graphicsObject.setStrokeStyle(1); 
    graphicsObject.beginStroke(createjs.Graphics.getRGB(0,0,0)); 
    graphicsObject.beginFill(createjs.Graphics.getRGB(255,0,0)); 


    for(var i = 0; i < vertexList.length; i++){ 

      graphicsObject.lineTo(vertexList[i].attributes[2].value, vertexList[i].attributes[3].value) 

      stage.addChild(graphicsShape); 

      } 

    segmentsArray.push(graphicsShape); 
    //createContainer(segmentsArray[i]); 
    } 


function createArraysForSegments() { 

    for(var i=0; i <segmentsArray.length; i++){ 
      segmentsData[i] = new Array; 
      } 
    } 


function ColorChangeAddEventListener() { 
    for(var i = 0; i < segmentsArray.length; i++){ 
      segmentsArray[i].addEventListener('click', colorChange(i)); 
      } 
    } 

function colorChange(index){ 
    segmentsArray[index].graphics.beginFill('white'); 
    stage.update(); 
    } 

я вызывать функции позже ColorChangeAddEventListener(); drawLayer (0); stage.update();

если я набираю сегментыArray [0] .alpha = 0.5; он работает для этой формы, но когда я помещаю его в сегментыArray [0] .addEventsListener ('click', function) {segmentArray [0] .alpha = 0.5;}), который не работает

ответ

1

Просто установите beginFill не повлияет на текущую форму, вам также придется segmentsArray[index].graphics.clear() и redraw форма.

beginFill() не является средством настройки для свойства, а является командой, которая влияет на команды подпоследовательностей, например drawRect().

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

  • Нет связанных вопросов^_^