2016-11-02 2 views
0

아마도 멍청한 질문입니다. 현재 저는 Framer.js를보고 있습니다. CoffeeScript 질문이 있습니다.루프에서 동적 변수 선언하기 Coffescript

types = ["orange", "apple", "banana", "grapefruit", "pear"] 
for i in types 
    li = new TextLayer 
     text: types 
     y: li * 60 
    li.parent = dropdownList 

    print "list-item-" + "#{i}", i 

그래서 Array가 있고 개체 인스턴스에 동적 변수를 선언하고 싶습니다. 위의 코드는 단지 5 개의 레이어를 생성합니다 (Framer specific> Editor 내에서 자명하지 않은 레이어 이름을 원하지 않습니다).

그래서 for 루프 내에 있습니다. = 새 레이어

VAR 항목 - 오렌지 ...

VAR 항목-사과 = 새 레이어 ... 등

에 어떻게이 커피 스크립트로 수행 할 수 있을까?

+0

http://share.framerjs.com/5owxrbz5hqse/은 무엇 "편집기"당신은 의미합니까? 왜 이것에 대해 객체 ('{orange : ..., apple : ...}')를 사용하지 않습니까? –

+0

성취하고자하는 것은 무엇입니까? 'y : li * 60'은 무엇을 뜻합니까? NaN이 아닌가요? 왜 전체 배열 유형을 텍스트로 할당합니까? 그 성명서의 요점은 무엇입니까? 당신은 당신의 문제를 예상과 실제 결과물로 설명 할 수 있습니까? – kba

+0

아마 Framer-lingo의 나머지 부분을 제거해야했습니다. 기본적으로 배열의 모든 값은 부모 드롭 다운 목록에 세로로 60px의 간격으로 추가됩니다. 인쇄 기능은 Framer Studio에서 console.log를 수행하는 방법입니다. 나는 중얼 ​​거 렸어. "# {i}"는 요소 값을 가져 오는 방법입니다. Framer.js는 Framer Studio라는 IDE가있는 프로토 타이핑 프레임 워크입니다. – myradon

답변

0

잘 모르겠지만 작성하려고하는 각 레이어를 이름으로 참조하는 것입니다. 당신은 자신의 이름의 참조에서 객체에 저장하여이 작업을 수행 할 수 있습니다 :

types = ["orange", "apple", "banana", "grapefruit", "pear"] 

# Create an empty layers object, outside of the loop 
layers = {} 

# Loop over the types array, storing the type in the variable named type 
# And the number of the current loop in the variable index 
for type, index in types 
    li = new Layer 
     html: type 
     y: index * 220 
     name: "list-item-#{type}" 
    # Store the layer in the layer object under the type key 
    layers[type] = li 

    print "list-item-" + "#{type}", layers[type] 

# Get a specific layer out of the layers array 
layers['apple'].animate 
    x: 300 

전체 예제는 여기에 있습니다 :

+0

Handy 같은 예. 귀하의 예에서는 Framer Studio에서 모든 인스턴스 이름이 li로 표시됩니다. 레이어 목록 - 항목 - 오렌지, 레이어 목록 - 항목 - 사과 등으로 레이어를보고 싶습니다. – myradon

+0

'name :'속성을 사용하여 명시 적으로 레이어 이름을 지정하면됩니다.이를 포함하도록 예제를 업데이트했습니다. – Niels

+0

Niels 많이 감사합니다! – myradon