2013-05-28 4 views
1

의가 나는 circlessRaphael Setrectangle을 생각해 보자 : Raphael SET에서 개별 오브젝트의 속성을 변경하려면 어떻게해야합니까?

<script type="text/javascript"> 

    var paper = Raphael("canvas", 500, 500), 
     r  = paper.rect(100, 100, 140, 80), 
     c  = paper.circle(100, 100, 80); 

    c.attr({fill: 'red', stroke: 'black'}); 
    r.attr({fill: 'black', stroke: 'red'}); 

    var ss = paper.set(r, c); 

</script> 

이제 프로그램의 어떤 시점에서, 나는 원형의 fill: 'white' 말을 변경해야합니다.

나는 Set의 속성을 다음과 같이 변경할 수 있다는 것을 알고있다 : ss.attr({fill: 'white'}),하지만 이것은 모든 요소에 적용된다. 나는 여전히 직사각형의 색을 변함없이 유지하려고한다. 시도했습니다. ss.c.attr(), 결과가 없습니다.

어떻게하면 좋을까요? 감사합니다.

+0

왜'c.attr ({fill : 'white'})'가 아닌가? 'c'에 직접 접근 할 수없는 이유가 있습니까? – wwww

+0

나는 이미 생성 된 ss 세트를 가져 와서 일부 이벤트 핸들러에서 일부 변경을 수행해야하기 때문에. c는 나에게 보이지 않는다, 나는 단지 세트가있다. – Brian

+0

set.forEach()를 사용할 수 있지만 사용법을 잘 모르겠습니다. – Brian

답변

1

나는 이전에 같은 문제가있었습니다. 그런 다음 배열 에서처럼 SET 개의 개별 개체에 액세스 할 수 있다는 것을 알았습니다.
특급.; ss[0]r 직사각형 객체를 반환합니다. 즉 ss [0] .attr ({ '// 여기'})

관련 문제