2014-09-04 3 views
0

기본적으로 5 개의 이미지로 레이어를 만들어야합니다. 수동으로 레이어를 만드는 것과 반대로 for 루프를 사용하여이 작업을 수행 할 수 있습니까? 다음 코드는 시도했지만, 여기에서 디버깅하는 방법을 모르겠습니다.배열과 루프에서 일련의 레이어를 만드는 방법은 무엇입니까?

tabs_strings = ["nearby", "adopted", "my_cats", "settings", "bruce"] 

for tab in [0..tabs_strings] 
    tab = new Layer 
     x:0, y:0, width:640, height:1136, image:"images/#{tab}.jpg" 

# nearby = new Layer 
# x:0, y:0, width:640, height:1136, image:"images/nearby.jpg" 
# adopted = new Layer 
# x:0, y:0, width:640, height:1136, image:"images/adopted.jpg", opacity: 0 
# my_cats = new Layer 
# x:0, y:0, width:640, height:1136, image:"images/my_cats.jpg", opacity: 0 
# settings = new Layer 
# x:0, y:0, width:640, height:1136, image:"images/settings.jpg", opacity: 0 
# bruce = new Layer 
# x:0, y:0, width:640, height:1136, image:"images/bruce.jpg", opacity: 0 

답변

2

귀하의 for 루프, 음, 이상하다. 오히려 평소보다

for i in [0 .. some_array] 

:

for i in [0 .. some_number] 

또는

for e in some_array 

당신은 자바 스크립트 버전을 보면

, 당신이 볼 수 tabs_strings 자체가 당신이 말하는 것, 그래서 배열입니다 이 :

for (tab = _i = 0; 0 <= tabs_strings ? _i <= tabs_strings : _i >= tabs_strings; tab = 0 <= tabs_strings ? ++_i : --_i) { 

그래서 결국 0을 어레이와 비교해 보았습니다. 그다지 생산적이지는 않습니다.

난 당신이 for -loop의 for e in array 양식을 사용하려는 생각 : 루프 내부의 tab 할당 할 필요가 없습니다

for tab in tab_strings 
    new Layer 
     x:0, y:0, width:640, height:1136, image:"images/#{tab}.jpg" 

그래서 나는 그것을 밖으로했다.

+0

나중에 특정 레이어를 어떻게 참조하나요? 'nearby.opacity = 1'처럼 보이지 않습니다. 효과가있는 것 같습니다. – nipponese

+0

레이어를 추적하고 싶다면'layers = tab for tab_strings ... '에서해야합니다. –

+0

나는 그것을 얻지 않는다. 이 작업을 단일 레이어 개체에 할당하지 않습니까? – nipponese

1

게시 한 코드가 작동하지 않고 대체 솔루션을 찾고 있다고 질문합니까?

편집 :

내가 여기에 볼 수있는 유일한 문제는 당신이 배열의 현재 위치에서 전달 된 문자열 변수뿐만 아니라 당신이 초기화되고 새로운 Layer 객체 모두에 대해 "탭"을 사용하는 것입니다.

이 시도 :

tabs_strings = ["nearby", "adopted", "my_cats", "settings", "bruce"] 

for tab in [0..tabs_strings.length] 
    tabLayer = new Layer 
      x:0, y:0, width:640, height:1136, image:"images/#{tab}.jpg" 
+0

문제는 레이어 객체가 생성되지 않는다는 것입니다. 예를 들어, tabLayer = new Layer 속성을 수정하면 \t \t x : 0, y : 0, width : 640, height : 1136, backgroundColor = "#FFF", opacity : 1' 하얀 640x1136 직사각형이 보이지 않습니다. – nipponese

+0

루프 안에서'tab'을 두 번 사용하면 문제가 없습니다. 'for'-loop OTOH ... –

관련 문제