25
Фабрика Blockly Гудаев О.А. 2013

МАПО 2013 Лекция 04 Фабрика Blockly

  • Upload
    -

  • View
    1.389

  • Download
    2

Embed Size (px)

DESCRIPTION

Дисциплина "Моделирование и анализ программного обеспечения"

Citation preview

Page 1: МАПО 2013 Лекция 04 Фабрика Blockly

Фабрика Blockly

Гудаев О.А.

2013

Page 2: МАПО 2013 Лекция 04 Фабрика Blockly

2

Операторные схемы теоретическая основа Blockly

Лавров С.С. Программирование. Математические основы, средства, теория. – СПб: БХВ-Петербург, 2001. – 320 с.

Page 3: МАПО 2013 Лекция 04 Фабрика Blockly

3

Page 4: МАПО 2013 Лекция 04 Фабрика Blockly

4

Page 5: МАПО 2013 Лекция 04 Фабрика Blockly

5

Page 6: МАПО 2013 Лекция 04 Фабрика Blockly

6

Page 7: МАПО 2013 Лекция 04 Фабрика Blockly

7

Page 8: МАПО 2013 Лекция 04 Фабрика Blockly

8

Page 9: МАПО 2013 Лекция 04 Фабрика Blockly

9

Тестовое задание

• Использовать фабрику конструирования блоков Blockly для описания WebGL-сцены и документа в формате HTML5.

• Реализовать функции 2D-анимации средствами технологии Canvas в виде блоков Blockly.

Page 10: МАПО 2013 Лекция 04 Фабрика Blockly

10

Подготовка файлов1. Создайте папку «webgl» в корне каталога demos;

2. В папке «webgl» создайте файл в имени которого содержится буква учебной группы и номер по журналу: “webgl.<буква><номер по журналу>.js”. Буква строчная, а имя номера с 1 по 9 имеют ведущий ноль. Например, “webgl.a01.js”, “webgl.a05.js”, “webgl.a09.js”, “webgl.a17.js”;

3. Все создаваемые Вами функции описания блоков должны иметь префикс “webgl_<буква><номер>_<имя функции>”. Например, “webgl_a17_headerhtml5”;

4. В терминологии технологии Blockly примеры имен функций:

Blockly.Language.webgl_a17_headerhtml5

Blockly.JavaScript.webgl_a17_headerhtml5 = function()

Page 11: МАПО 2013 Лекция 04 Фабрика Blockly

11

Подключение файла с блоками webgl

В папке «demos\code» размещается файл «frame.html».

В файле «frame.html» после строчки:<script type="text/javascript" src="../../language/common/procedures.js"></script>

Добавьте строчку с подключением Вашего файла блоков «webgl»: <script type="text/javascript" src="../webgl/webgl.a17.js"></script>

Page 12: МАПО 2013 Лекция 04 Фабрика Blockly

12

Пример создания блока Введём JavaScript-код в тестовый файл «webgl.a17.js»:'use strict';

if (!Blockly.Language) Blockly.Language = {};

Blockly.Language.webgl_a17_headerhtml5 = { category: 'WebGL', helpUrl: 'file://localhost/C:/blockly/demos/webgl/ webgl_a17_headerhtml5.help.html',

init: function() { this.appendValueInput("VALUE") .appendTitle("Header HTML5 document. Tag <HTML>"); }};

Blockly.JavaScript.webgl_a17_headerhtml5 = function() { var code = '&lt;HTML&gt;' return code;};

Page 13: МАПО 2013 Лекция 04 Фабрика Blockly

13

Откройте в браузере файл «demos\code\index.html». В результате получим новую категорию «WebGL».

Page 14: МАПО 2013 Лекция 04 Фабрика Blockly

14

Генерация кода

Важно заметить, что генератор кода из строчкиcode = '&lt;HTML&gt;‘ сделает тег <HTML>

Page 15: МАПО 2013 Лекция 04 Фабрика Blockly

15

Справка о блоке

Page 16: МАПО 2013 Лекция 04 Фабрика Blockly

16

Справочный файл о блоке «headerhtml5» file://localhost/C:/blockly/demos/webgl/

webgl_a17_headerhtml5.help.html

Page 17: МАПО 2013 Лекция 04 Фабрика Blockly

17

SVG-редактор

Page 18: МАПО 2013 Лекция 04 Фабрика Blockly

18

Свойства документа

Page 19: МАПО 2013 Лекция 04 Фабрика Blockly

19

Размер изображения 64 х 48

Page 20: МАПО 2013 Лекция 04 Фабрика Blockly

20

Текстовый формат файла SVG

Page 21: МАПО 2013 Лекция 04 Фабрика Blockly

21

Подключаем SVG-файлизображение, текст. Имеем

прозрачный фон

this.appendValueInput("VALUE")// .appendTitle("Header HTML5 document. Tag <HTML>");

.appendTitle(new Blockly.FieldImage("../../media/canvas.svg", 64, 48));

Page 22: МАПО 2013 Лекция 04 Фабрика Blockly

22

Результат

Page 23: МАПО 2013 Лекция 04 Фабрика Blockly

23

Масштаб 120%

Page 24: МАПО 2013 Лекция 04 Фабрика Blockly

24

Масштаб 140%

Page 25: МАПО 2013 Лекция 04 Фабрика Blockly

25

Спасибо за внимание