Member Block Generator
- 이 단계에서는 멤버 블록의 생성기를 빌드합니다.
- getFieldValue 함수를 사용하고 valueToCode 함수를 도입합니다.
- 멤버 블록에는 텍스트 입력 필드와 값 입력이 있습니다.
- 생성된 코드는 "속성 이름": "속성 값"과 같습니다.
1. Field value
- 속성 이름은 getFieldValue를 통해 가져오는 텍스트 입력 값입니다.
- const name = block.getFieldValue('MEMBER_NAME');
- 가져오는 값의 이름은 MEMBER_NAME이고 이는 blocks/json.js 에 정의된 이름입니다.
2. Input value
- 속성 값은 값 입력에 첨부된 것입니다. 다양한 블록을 첨부할 수 있습니다.
- logic_null, text, math_number, logic_boolean 또는 배열(lists_create_with).
- valueToCode를 사용하여 올바른 값을 가져옵니다.
const value = generator.valueToCode(block, 'MEMBER_VALUE', Order.ATOMIC);
- valueToCode는 세 가지 작업을 수행합니다.
- 지정된 값 입력(두 번째 인수)에 연결된 블록을 찾습니다.
- 해당 블록의 코드를 생성합니다.
- 코드를 문자열로 반환합니다.
- 블록이 연결되지 않은 경우 valueToCode는 null을 반환합니다.
- 다른 생성기에서 valueToCode는 null을 다른 기본값으로 바꿔야 할 수 있습니다.
- JSON에서는 null이 가능합니다.
- 세 번째 인수는 연산자 우선순위와 관련이 있습니다.
- 값 주위에 괄호를 추가해야 하는지 여부를 결정하는 데 사용됩니다. JSON에서는 이전 섹션에서 설명한 대로 괄호를 추가하지 않습니다.
3. Code String 만들기
- 다음으로 인수 이름과 값을 올바른 코드로 조립합니다.
- 형식은 "name": value입니다.
const code = `"${name}": ${value}`;
4. 모두 합치기
- member 블록 만들기
jsonGenerator.forBlock['member'] = function (block, generator) {
const name = block.getFieldValue('MEMBER_NAME');
const value = generator.valueToCode(block, 'MEMBER_VALUE', Order.ATOMIC);
const code = `"${name}": ${value}`;
return code;
};
카페 게시글
Blockly/Pyodide
Blockly
Member Block Generator
주인장
추천 0
조회 5
24.11.16 16:29
댓글 0
다음검색