2016-06-25 3 views
0

저는 Framer를 처음 사용하고 매우 귀찮은 문제가 있습니다. 해결을 위해 몇 시간을 보냈습니다.변수를 사용하여 CoffeeScript/Framer의 개체 속성을 설정하십시오.

변수 sectionToLoad을 통해 전달 된 이름을 사용하여 개체의 불투명도 속성을 변경하는 문을 작성하려고합니다. 문을 콘솔에 완벽하게 기록 할 수 있지만 렌더링되지 않습니다. 어떤 도움이라도 대단히 감사 할 것입니다.

HideSection = (sectionToLoad) -> 
PossibleSections = ["layerA", "layerB", "layerC", "layerD"] 
for i in [0..PossibleSections.length - 1] 
    if PossibleSections[i] != sectionToLoad 
     console.log(PossibleSections[i]) 
     PossibleSections[i].opacity = 1 
    else 
     console.log(sectionToLoad + ".opacity = 1") 
     # WHY DOESN'T THIS WORK? 
     sectionToLoad.opacity = 0 

HideSection("layerB") 

#BUT THIS DOES SOME REASON 
# layerB.opacity = 1 

여기 내 프레이머 파일 http://share.framerjs.com/9pv42mi6c99n/

+0

'sectionToLoad'는 * object *'layerB'가 아닌 * string *' 'layerB''입니다. 'layerA' ...'layerD' 객체는 어디에서 왔습니까? 'PossibleSections'을 문자열 배열 대신 문자열 - 객체 맵으로 변경할 수 있습니까? –

답변

0

여기서 문제는 내가 대신 객체의 문자열을 사용했다이었다입니다. 말 그대로 불필요한 인용문 추가.

layerB이 개체는 "layerB" 문자열입니다. 단서에 대한 위의 의견에 감사드립니다.

이것은 작동 코드입니다.

HideSection = (sectionToLoad) -> 
PossibleSections = [layerA, layerB, layerC, layerD] 
for i in [0..PossibleSections.length - 1] 
    if PossibleSections[i] != sectionToLoad 
     console.log(PossibleSections[i]) 
     PossibleSections[i].opacity = 1 
    else 
     console.log(sectionToLoad + ".opacity = 1") 
     sectionToLoad.opacity = 0 

HideSection(layerC)