2017-02-16 6 views
0

에 자바 스크립트 코드를 생성하는 코드를 작성하는 것이 MoveForward및 MoveBackward라는 내부 '운동' 두와 블록이라고 블록의 다른 카테고리.사용자 정의 블록을 생성하고 내가 원하는 안드로이드

toolbox.xml 블록 형 코어 라이브러리에있는 파일 UI 작성 용 XML 코드를 추가했습니다.

<category name="Movement" colour="190"> 

     <block type="move_forward"> 
      <value name="TEXT"> 
       <shadow type="text"> 
        <field name="TEXT">4</field> 
       </shadow> 
      </value> 
     </block> 

     <block type="move_backward"> 
      <value name="TEXT"> 
       <shadow type="text"> 
        <field name="TEXT">4</field> 
       </shadow> 
      </value> 
     </block> 

</category> 

이제 이러한 bocks를 사용하고 실행할 때 출력 JavaScript 코드를 생성 할 JavaScript 코드를 추가해야합니까? 간단히 말해서,이 블록이 자바 스크립트 코드를 생성하기 위해 필요한 추가 작업은 무엇입니까?

답변

1

이미 블록 정의를 작성했으며이 블록이 도구 상자 UI에 표시된다고 가정합니다. 어떤 경우에는 코드 생성기가 누락 된 부분입니다. 생성기는 모든 블록 플랫폼에서 JavaScript로 정의됩니다. 그들은 다음과 같이 :

// From the Android turtle demo. 
// https://github.com/google/blockly-android/blob/master/blocklydemo/src/main/assets/turtle/generators.js 
Blockly.JavaScript['turtle_move_internal'] = function(block) { 
    // Generate JavaScript for moving forward or backwards. 
    var value = block.getFieldValue('VALUE'); 
    return 'Turtle.' + block.getFieldValue('DIR') + 
     '(' + value + ', \'block_id_' + block.id + '\');\n'; 
}; 

Blockly.JavaScript 자바 스크립트 생성기 기능 (귀하의 경우 move_forwardmove_backward) 블록 타입 이름의 맵입니다. 각 생성자 함수는 JavaScript Block 객체로 전달됩니다. Blockly의 웹 버전에서 사용되는 API와 동일한 API입니다.

생성기 파일을 직접 작성하십시오. Android를 사용하는 경우 자산 폴더와 AbstractBlocklyActivity.getGeneratorsJsPaths()에 의해 반환 된 자산 경로 중 하나에 있어야합니다.