Разработка интерактивных компонентов для виртуальных лабораторных практикумов

Использование информационных технологий в образовании. Системы дистанционного обучения и виртуальные лаборатории. Мультимедийная платформа Adobe Flash. Этапы разработки виртуального лабораторного практикума: оптимизация кода и разработка компонентов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 15.06.2017
Размер файла 3,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

pincet11.x = xpin11;

chashka2.visible = false;

reactionNa11.x = chashka2.x-10;

reactionNa11.y = chashka2.y-59;

reactionNa11.visible = true;

reactionNa11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetNa11.hitTestObject(chashka3) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetNa11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka3.visible = false;

reactionNa11.x = chashka3.x-10;

reactionNa11.y = chashka3.y-59;

reactionNa11.visible = true;

reactionNa11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

else

{

pincetNa11.x = xpinNa11;

pincetNa11.y = ypinNa11;

}

}

}

if (pincet11.hitTestObject(KusLi11)) {

pincet11.visible = false;

pincetLi11.visible = true;

lbl.text = "Перенесите пинцет с металлом в одну из чашек Петри";

KusLi11.visible = false;

pincetLi11.addEventListener(MouseEvent.MOUSE_DOWN, takepincetLi11);

function takepincetLi11(e:MouseEvent): void {

pincetLi11.startDrag();

}

pincetLi11.addEventListener(MouseEvent.MOUSE_UP, stoptakepincetLi11);

function stoptakepincetLi11(e:MouseEvent): void {

pincetLi11.stopDrag();

if (pincetLi11.hitTestObject(chashka1) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetLi11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka1.visible = false;

reactionLi11.x = chashka1.x - 10;

reactionLi11.y = chashka1.y - 59;

reactionLi11.visible = true;

reactionLi11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetLi11.hitTestObject(chashka2) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetLi11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka2.visible = false;

reactionLi11.x = chashka2.x - 10;

reactionLi11.y = chashka2.y - 59;

reactionLi11.visible = true;

reactionLi11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetLi11.hitTestObject(chashka3) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetLi11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka3.visible = false;

reactionLi11.x = chashka3.x - 10;

reactionLi11.y = chashka3.y - 59;

reactionLi11.visible = true;

reactionLi11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

else

{

pincetLi11.x = xpinLi11;

pincetLi11.y = ypinLi11;

}

}

}

else {

pincet11.x = xpin11;

pincet11.y = ypin11;

}

}

//проверка заданий в журнале

var rez12;

btn1.addEventListener(MouseEvent.CLICK, btn1_click);

function btn1_click (event:MouseEvent):void {

rez12 = 0;

if (k11.text=="2") rez12+=0.25;

if (k12.text=="2") rez12+=0.25;

if (p11.text=="2LIOH" || p11.text=="2LiOH" || p11.text=="2lioh") rez12+=0.25;

if (p12.text=="H2") rez12+=0.25;

if (k21.text=="2") rez12+=0.25;

if (k22.text=="2") rez12+=0.25;

if (p21.text=="2NAOH" || p21.text=="2NaOH" || p21.text=="2naoh") rez12+=0.25;

if (p22.text=="H2" || p22.text=="h2") rez12+=0.25;

if (k31.text=="2") rez12+=0.25;

if (k32.text=="2") rez12+=0.25;

if (p31.text=="2KOH" || p31.text=="2koh") rez12+=0.25;

if (p32.text=="H2" || p32.text=="h2") rez12+=0.25;

lblRez12.text = String(rez12) + "/3";

if (rez12>=0 && rez12<=1) lblOc1.text = "Оценка: 2";

if (rez12>1 && rez12<=2) lblOc1.text = "Оценка: 3";

if (rez12>2 && rez12<3) lblOc1.text = "Оценка: 4";

if (rez12==3) lblOc1.text = "Оценка: 5";

}

var rez11 = 0;

btn2.addEventListener(MouseEvent.CLICK, btn2_click);

function btn2_click (event:MouseEvent):void {

rez11 = 0;

if (cb1.selectedIndex==2) rez11+=1;

if (cb2.selectedIndex==2) rez11+=1;

if (cb3.selectedIndex==1) rez11+=1;

if (cb4.selectedIndex==1) rez11+=1;

if (cb5.selectedIndex==0) rez11+=1;

lblRez11.text = String(rez11) + "/5";

if (rez11>=0 && rez11<=2) lblOc2.text = "Оценка: 2";

if (rez11>2 && rez11<=3) lblOc2.text = "Оценка: 3";

if (rez11>3 && rez11<5) lblOc2.text = "Оценка: 4";

if (rez11==5) lblOc2.text = "Оценка: 5";

}

Листинг лабораторной работы №20

ToLaboratory.addEventListener(MouseEvent.CLICK, gotourl);

function gotourl(Event:MouseEvent):void

{

var url:URLRequest = new URLRequest("../lab.html");

navigateToURL(url, '_self');

}

import flash.events.MouseEvent;

stop();

lbl.text = "Для ознакомления с работой откройте лабораторный журнал!";

//обращение к журналу

zyrnal.addEventListener (MouseEvent.CLICK, takebook11);

function takebook11 (e:MouseEvent) : void {

gotoAndPlay(2);

zyrOk11=1;

if (lbl.text=="Не забудьте выполнить задания в лабораторном журнале!") zyrOk11=2;

}

if (zyrOk11==1) {lbl.text = "Вы можете просмотреть сведения обо всех реактивах, нажав на их названия"};

if (zyrOk11==2) {lbl.text = "Нажмите на изображение двери выхода, чтобы вернуться в лабораторию!"};

//просмотр сведений о металлах

Li11.addEventListener (MouseEvent.CLICK, aboutLi);

function aboutLi (e:MouseEvent) : void {

gotoAndStop(9);

MeOk11 = 1;

zyrOk11 = 0;

}

Na11.addEventListener (MouseEvent.CLICK, aboutNa);

function aboutNa (e:MouseEvent) : void {

gotoAndStop(10);

MeOk11 = 1;

zyrOk11 = 0;

}

K11.addEventListener (MouseEvent.CLICK, aboutK);

function aboutK (e:MouseEvent) : void {

gotoAndStop(11);

MeOk11 = 1;

zyrOk11 = 0;

}

Ff11.addEventListener (MouseEvent.CLICK, aboutFf);

function aboutFf (e:MouseEvent) : void {

gotoAndStop(12);

MeOk11 = 1;

zyrOk11 = 0;

}

if (MeOk11==1) {lbl.text = "Возьмите пипетку с фенолфталеином и накапайте по несколько капель в каждую из чашек Петри"};

//работа с предметами на рабочей области

reactionK11.visible = false;

reactionNa11.visible = false;

reactionLi11.visible = false;

//начальные положения предметов на рабочей области

var xpip11 = pipetka11.x, ypip11 = pipetka11.y;

var xpin11 = pincet11.x, ypin11 = pincet11.y;

var xpinK11 = pincetK11.x, ypinK11= pincetK11.y;

var xpinNa11 = pincetNa11.x, ypinNa11 = pincetNa11.y;

var xpinLi11 = pincetLi11.x, ypinLi11 = pincetLi11.y;

var pipOk = 0, zyrOk11, MeOk11 = 0, kolMe11 = 0;

//работа с пипеткой

pipetka11.stop();

pipetka11.addEventListener(MouseEvent.MOUSE_DOWN, takepipetka11);

function takepipetka11(e:MouseEvent): void {

pipetka11.startDrag();

pipetka11.play();

}

pipetka11.addEventListener(MouseEvent.MOUSE_UP, stoptakepipetka11);

function stoptakepipetka11(e:MouseEvent): void {

pipetka11.stopDrag();

pipetka11.stop();

pipetka11.x = xpip11;

pipetka11.y = ypip11;

pipOk = 1;

lbl.text = "Возьмите пинцет";

}

//работа с пинцетом

pincetLi11.visible = false;

pincetK11.visible = false;

pincetNa11.visible = false;

pincet11.addEventListener(MouseEvent.MOUSE_DOWN, takepincet11);

function takepincet11(e:MouseEvent): void {

pincet11.startDrag();

lbl.text = "Захватите пинцетом кусочек одного из металлов в тигле";

}

pincet11.addEventListener(MouseEvent.MOUSE_UP, stoptakepincet11);

function stoptakepincet11(e:MouseEvent): void {

pincet11.stopDrag();

if (pincet11.hitTestObject(KusK11)) {

pincet11.visible = false;

pincetK11.visible = true;

lbl.text = "Перенесите пинцет с металлом в одну из чашек Петри";

KusK11.visible = false;pincetK11.addEventListener(MouseEvent.MOUSE_DOWN, takepincetK11);

function takepincetK11(e:MouseEvent): void {

pincetK11.startDrag();

}pincetK11.addEventListener(MouseEvent.MOUSE_UP, stoptakepincetK11);

function stoptakepincetK11(e:MouseEvent): void {

pincetK11.stopDrag();

if (pincetK11.hitTestObject(chashka1) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";pincetK11.visible = false;pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka1.visible = false;

reactionK11.x = chashka1.x-10;

reactionK11.y = chashka1.y-59;

reactionK11.visible = true;

reactionK11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetK11.hitTestObject(chashka2) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetK11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka2.visible = false;

reactionK11.x = chashka2.x-10;

reactionK11.y = chashka2.y-59;

reactionK11.visible = true;

reactionK11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetK11.hitTestObject(chashka3) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetK11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka3.visible = false;

reactionK11.x = chashka3.x-10;

reactionK11.y = chashka3.y-59;

reactionK11.visible = true;

reactionK11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

else

{

pincetK11.x = xpinK11;

pincetK11.y = ypinK11;

}

}

}

if (pincet11.hitTestObject(KusNa11)) {

pincet11.visible = false;

pincetNa11.visible = true;

lbl.text = "Перенесите пинцет с металлом в одну из чашек Петри";

KusNa11.visible = false;

pincetNa11.addEventListener(MouseEvent.MOUSE_DOWN, takepincetNa11);

function takepincetNa11(e:MouseEvent): void {

pincetNa11.startDrag();

}

pincetNa11.addEventListener(MouseEvent.MOUSE_UP, stoptakepincetNa11);

function stoptakepincetNa11(e:MouseEvent): void {

pincetNa11.stopDrag();

if (pincetNa11.hitTestObject(chashka1) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetNa11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka1.visible = false;

reactionNa11.x = chashka1.x-10;

reactionNa11.y = chashka1.y-59;

reactionNa11.visible = true;

reactionNa11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetNa11.hitTestObject(chashka2) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetNa11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka2.visible = false;

reactionNa11.x = chashka2.x-10;

reactionNa11.y = chashka2.y-59;

reactionNa11.visible = true;

reactionNa11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetNa11.hitTestObject(chashka3) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetNa11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka3.visible = false;

reactionNa11.x = chashka3.x-10;

reactionNa11.y = chashka3.y-59;

reactionNa11.visible = true;

reactionNa11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

else

{

pincetNa11.x = xpinNa11;

pincetNa11.y = ypinNa11;

}

}

}

if (pincet11.hitTestObject(KusLi11)) {

pincet11.visible = false;

pincetLi11.visible = true;

lbl.text = "Перенесите пинцет с металлом в одну из чашек Петри";

KusLi11.visible = false;

pincetLi11.addEventListener(MouseEvent.MOUSE_DOWN, takepincetLi11);

function takepincetLi11(e:MouseEvent): void {

pincetLi11.startDrag();

}

pincetLi11.addEventListener(MouseEvent.MOUSE_UP, stoptakepincetLi11);

function stoptakepincetLi11(e:MouseEvent): void {

pincetLi11.stopDrag();

if (pincetLi11.hitTestObject(chashka1) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetLi11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka1.visible = false;

reactionLi11.x = chashka1.x - 10;

reactionLi11.y = chashka1.y - 59;

reactionLi11.visible = true;

reactionLi11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetLi11.hitTestObject(chashka2) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetLi11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka2.visible = false;

reactionLi11.x = chashka2.x - 10;

reactionLi11.y = chashka2.y - 59;

reactionLi11.visible = true;

reactionLi11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

if (pincetLi11.hitTestObject(chashka3) && pipOk == 1) {

lbl.text = "Пронаблюдав за реакцией, повторите те же действия с оставшимися металлами";

pincetLi11.visible = false;

pincet11.visible = true;

pincet11.y = ypin11;

pincet11.x = xpin11;

chashka3.visible = false;

reactionLi11.x = chashka3.x - 10;

reactionLi11.y = chashka3.y - 59;

reactionLi11.visible = true;

reactionLi11.play();

kolMe11+=1;

if (kolMe11==3) lbl.text = "Не забудьте выполнить задания в лабораторном журнале!";

}

else

{

pincetLi11.x = xpinLi11;

pincetLi11.y = ypinLi11;

}

}

}

else {

pincet11.x = xpin11;

pincet11.y = ypin11;

}

}

//проверка заданий в журнале

var rez12;

btn1.addEventListener(MouseEvent.CLICK, btn1_click);

function btn1_click (event:MouseEvent):void {

rez12 = 0;

if (k11.text=="2") rez12+=0.25;

if (k12.text=="2") rez12+=0.25;

if (p11.text=="2LIOH" || p11.text=="2LiOH" || p11.text=="2lioh") rez12+=0.25;

if (p12.text=="H2") rez12+=0.25;

if (k21.text=="2") rez12+=0.25;

if (k22.text=="2") rez12+=0.25;

if (p21.text=="2NAOH" || p21.text=="2NaOH" || p21.text=="2naoh") rez12+=0.25;

if (p22.text=="H2" || p22.text=="h2") rez12+=0.25;

if (k31.text=="2") rez12+=0.25;

if (k32.text=="2") rez12+=0.25;

if (p31.text=="2KOH" || p31.text=="2koh") rez12+=0.25;

if (p32.text=="H2" || p32.text=="h2") rez12+=0.25;

lblRez12.text = String(rez12) + "/3";

if (rez12>=0 && rez12<=1) lblOc1.text = "Оценка: 2";

if (rez12>1 && rez12<=2) lblOc1.text = "Оценка: 3";

if (rez12>2 && rez12<3) lblOc1.text = "Оценка: 4";

if (rez12==3) lblOc1.text = "Оценка: 5";

}

var rez11 = 0;

btn2.addEventListener(MouseEvent.CLICK, btn2_click);

function btn2_click (event:MouseEvent):void {

rez11 = 0;

if (cb1.selectedIndex==2) rez11+=1;

if (cb2.selectedIndex==2) rez11+=1;

if (cb3.selectedIndex==1) rez11+=1;

if (cb4.selectedIndex==1) rez11+=1;

if (cb5.selectedIndex==0) rez11+=1;

lblRez11.text = String(rez11) + "/5";

if (rez11>=0 && rez11<=2) lblOc2.text = "Оценка: 2";

if (rez11>2 && rez11<=3) lblOc2.text = "Оценка: 3";

if (rez11>3 && rez11<5) lblOc2.text = "Оценка: 4";

if (rez11==5) lblOc2.text = "Оценка: 5";

}

Приложение 2

Текст доклада

Слайд 1. Уважаемые члены Государственной аттестационной комиссии! Разрешите представить вашему вниманию выпускную квалификационную работу на тему: «Разработка интерактивных компонентов для виртуальных лабораторных практикумов».

Слайд 2. Целью данной работы являлась разработка в среде Adobe Flash набора интерактивных компонентов для их использования в виртуальных лабораторных практикумах, существенная качественная переработка и доработка виртуальных лабораторных работ по общей химии посредством исправления и оптимизации программного кода, добавления новых интерактивных компонентов, расширения функционала и возможностей.

Слайд 3. В связи с поставленной целью были сформулированы задачи работы, основные их которых перечислены на данном слайде.

Слайд 4. Виртуальный лабораторный практикум - это вид проведения лабораторных занятий, суть которого заключается в замене реального лабораторного исследования на программно смоделированный, в котором учащийся взаимодействует с лабораторным оборудованием виртуально.

Слайд 5. В процессе выполнения работы в основном использовались такие технические средства как среда разработки Adobe Flash CS 6 и ее язык сценариев Action Script 3.0.

Слайд 6. В результате созданы 6 блоков лабораторных работ, названия которых приведены на слайде, общей численностью 20 работ.

Слайд 7-8. Названия этих 20-ти работ перечислены на данных слайдах.

Слайд 9. Эти работы разработаны в соответствии с едиными универсальными принципами, что позволило сохранить единство методологии и структуры лабораторного практикума.

Слайд 10. Здесь представлены рабочие элементы разработанного практикума, исправлению недостатков и совершенствованию кода которых в основном посвящена настоящая работа.

Слайд 11. Кнопке переключения страниц добавлен единственный однозначный код, который отсылает на следующую страницу журнала, до тех пор, пока журнал не кончится. Таким образом, она работает исправно, а журнал перемещается на свое следующее состояние, которое представляет из себя кадр внутри объекта «журнал».

Слайд 12. В предыдущих версиях лабораторного практикума текст был разбит на буквы, а буквы, в свою очередь, переведены из текстового формата в разбитые на пиксели фигуры. Как выглядит это сейчас представлено на рисунке справа.

Слайд 13. Объекты не имели своих состояний, и каждый раз использовались их различные модификации. Внешние кадры отвечали за динамику приложения, и на каждом кадре была представлена та разновидность функционального объекта, которая в данном случае была нужна.

После внесенных изменений в приложении каждый функциональный объект превращен в объект муви-клип, и если его состояние должно меняться в ходе выполнения лабораторной работы, то он переходит с кадра на кадр внутри своей внутренней временной линии.

Слайд 14. TLF-поля не поддерживаются в последних версиях Adobe Flash, с чем была связана необходимость замены их на классические текстовые поля. Также потребовалось внедрение шрифтов для корректного отображения индексов и самого текста на всех устройствах (включая айфоны, смартфоны, планшеты).

Слайд 15. Механизм преобразования текста в индексы реализуется с помощью так называемых тегов. Организуется макрозамена открывающего и закрывающего тега в тексте на теги, обозначающие стиль html-текста, размещенного внутри текстового поля.

Проверка знаний студентов теперь реализована с поправками. Для устранения машинной погрешности использована функция округления до целого (Math.round). Промежуточные оценки получаются масштабированием в два раза шкалы оценивания. Также исправлен механизм проверки подставленных элементов в текстовые поля: происходит приравнивание к строчному шрифту и проверка любой последовательности подставленных вариантов ответа.

Слайд 16. Здесь представлен пример лабораторной работы.

Слайд 17. Во всех сценах используется один и тот же тигель в разных состояниях, заключенных в разные кадры внутренней временной линии объекта. Весы с числом на них и без - разные состояния одних и тех же весов. Значение же массы на весах подставляется программно. Ожидание прокаливания привязано к счетчику, который запускается парой невидимых кадров внутри пустого объекта.

Слайд 18. По результатам работы можно сделать следующие выводы:

освоены методики и стилистики ранее созданных лабораторных работ виртуального лабораторного практикума как по общей, так и по неорганической химии;

разобраны сценарии выполнения лабораторных работ по общей химии, осуществлено знакомство с программным кодом этих работ, проведен критический анализ;

выделены стандартные компоненты, которые могут быть использованы для виртуальных практикумов, формализованы алгоритмы операций с данными компонентами;

переработан имеющийся программный код для устранения недостатков и его оптимизации, разработано недостающее программное обеспечение для расширения функционала и возможностей;

создан программный код, реализующий основные операции с компонентами, сформирован виртуальный лабораторный комплекс с использованием настраиваемых параметров интерактивных компонентов;

проведено объединение в единый виртуальный практикум переработанных блоков работ с разработанными ранее блоками работ по дисциплинам «Общая химия» и «Неорганическая химия».

Слайд 19. Спасибо за внимание!

Приложение 3

Иллюстрационный материал к докладу

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.