Su Macromedia Flash ne tik galima sukurti smagius filmukus. Kadangi, šioje programoje yra naudojamas ActionScript su ja galime padaryti ir mokomojo ir testavimo tipo programas. Išmoksime kurti testą, kurio atsakymus reikia nutempti į tam tikras vietas.Kad galetumėte kurt tokius testus, privalote turėti dragTest.as bylą. Jei neturite - bandykite siųstis. Tai ActionScript byla, kurioje yra funkcijų, reikalingų kurti testus, rinkinys. Galite parsisųsti šį visą dokumentą su visom pamokom. Jums taip pat gali prireikti šito paveiksliuko:
pele.jpg
Jis bus jums reikalingas praktinei užduočiai.

Mūsų kuriamo testo pavyzdys:


testpvz.jpg
Kiekvieną tokio tipo testą sudaro keletas dalių:

  • dalys, į kurias reikia nunešti atsakymus (vadinkime jas lipdukais, paveikslėlyje jos pažymėtos pirmu numeriu);
  • nešiojamos dalys, kurie yra atsakymai (2-as numeris);
  • varnelės, kurios rodo, kuriose vietose yra ar nėra klaidų (3-ias numeris);
  • mygtukas, kurį paspaudus tikrinamas testas (4-as numeris);
  • tekstas, kuriame po tikrinimo išvedamas klaidų kiekis (5-as numeris);Būtini elementai yra tik lipdukai ir nešiojamos dalys.

Animuotos pamokos:
Psichologai teigia, kad žmogus informaciją geba labiau įsisavinti kai ji pateikiama vaizdiniu būdu. Kadangi dirbame su grafine programa, būtu sunku aprašyti darbą su ja naudojantis vien tekstu. Žemiau matote pamokas, kurios rodo tai, kas ir aiškinama šiame straipsnyje.
Pamoka nr. 1
Pamoka nr. 2
Pamoka nr. 3
Pamoka nr. 4
Pamoka nr. 5
Pamoka nr. 6
Pamoka nr. 7
Pamoka nr. 8
Pamoka nr. 9
Pamoka nr. 10
Pamoka nr. 11

Paruoštukės:

Kaip vadinti testo dalis?

  • nešiojamos dalys turi vadintis: pN, kur N - bet koks natūralus saičius;
  • lipdukai turi vadintis: ppN, kur N - bet koks natūralus saičius;
  • varnelės turi vadintis: tN, kur N - bet koks natūralus saičius;
  • teksto laukas, kuriame turi būti kas nors išvedama su showResults() funkcija, turi vadintis results_.

Kaip sukurti nešiojamas dalis ir padaryti, kad jos veiktų?
Nešiojamos dalies nebus sunkus ir varginantis, jei kursite taip:

  • sukursite specialų simbolį, kuriame bus patalpintas kodas:
    _parent.onPress = function(){
    startDrag(_parent);
    _root.unSnap(_parent);
    }
     
    _parent.onRelease = function(){
    stopDrag();
    _root.snap(_parent);
    }

    Šis simbolis gali bet kaip atrodyti, jis gali būti net ir pagrindinė nešiojamos dalies forma, ar neišvaizdus apskritimas, kurį paprasčiausiai paslėpsite, jis tik atlieka šio kodo patalpinimo funkcija;

  • vėl sukursite simbolį, kurį ir reikės nešioti, jame patalpinsite anksčiau sukurtą simbolį, kuris talpina kodą. Dabar šiame simbolyje galite rašyti kokius užrašus, piešti formą ir t.t. Tik žiūrėkite, kad nešiojama dalis nebūtų didesnė už lipduką;
  • kitas nešiojamas dalis sukursite, tiesiog kopijuodami ir paversdami kopiją kitų simboliu;
  • nepamirškite šių dalių pavadinti.

Kaip sukurti varneles?
Varnelės yra simbolis su trimis kadrais. Pirmame kadre yra piešinys (pvz.: varnelė), kuris reikš, kad atsakymas teisingas, o trečiame turi būti kitas piešinys (pvz.: raudonas kryželis), kuris rodys, kad atsakymas nėra teisingas.

Ką turiu pradžioje irašyti, kad testas veiktų?
Reikia įrašyti tik vieną eilutę, kurios gale nereikia rašyti kabliataškio:

#include "dragTest.as"

Flash komanda #include paprasčiausiai prijungia failą “dragTest.as”, kuriame yra daug reikalingų funkcijų, skirtų testo kūrimui ir valdymui.
Kai byla “dragTest.as” yra prijungta, kokias kodo eilutes reikia įterpti testo pradžioje?
Prijungę bylą turime nurodyti, kiek yra nešiojamų dalių, tai atliekama nustatant vieno specialaus kintamojo reikšmę:

PieceCount = dalių_kiekis;[/code[
Jei teste yra varnelių ir norite jas paslėpti, tai reikia pasinaudoti šia funkcija:
<pre lang="actionscript">hideTicks();

Kokiu būdu ir kokia funkcija naudojama norint tikrinti testo atsakymus? Kur saugoma klaidų kiekio reikšmė ir kaip ją išvesti?
Tam reikia sukurti mygtuką, kurį paspaudus ir bus vykdomas tikrinimas ir rezultatų rodymas. Sukūrus ir ant jo paspaudus F9 irašyti tokį ActionScript kodą:

on (release) {
checkItems(true, true);
showResults("Padarėte klaidų: "+errCount);
}

Tikrinimui naudojama funkcija checkItems(), o klaidų kiekis yra saugomas kintamajame errCount. Tekstas išvedams naudojantis funkcija showResults(), bet nepamirškite sukurti DynamicText tipo teksto lauką, kuris turi būti pavadintas results_.

Kaip padaryti, kad nešiojamai daliai prilipus prie lipduko, pasikeistų jos spalva?
Nešiojamoje dalyje kur nors įterpkite kadrą, ir pavadinkite jį end. Tame kadre galite drąsiai keisti bet ką. Kai tik dalis prilimpa prie lipduko, rodomas šitame kadre esantis piešinys. Tą patį galima atlikti ir su lipduku, tai gali keistis ir lipdukas, kai kas nors prie jo prilimpa. Tik nepamirškite pačiame pirmame kadre įrašyti stop(), kad nebūtų vykdomas grojimas.
Ką daryti, jei prie lipduko turi prisijungti daugiau nei viena nešiojama dalis?
Tam naudojama ne checkItems() funkcija, o checkItemsEx(). Iš pat pradžių reikia nurodyti atsakymus, kas nėra labai lengva ir patogu. Atsakymai yra saugomi kintamajame possiblAnswrs. Tai nepaprastas kintamasis, o masyvas. Paprastai šnekant - tai lentelė su viena eilute, o stulpelių yra tiek, kiek nešiojamų dalių. Atsakymus galime nurodyti tokiu būdu:

possiblAnswrs = new Array("[1][2]","[1][2][3]","[3]");

Pirmasis masyvo possiblAnswrs elementas (langelis) yra “[1][2]”, antrasis - “[1][2][3]”, trečiasis - “[3]”. Vadinasi, yra trys nešiojamos dalys. Šių užrašų paaiškinimas:

  • pirmame elemente užrašas “[1][2]” reiškia, kad teisingas atsakymas bus kai prie pirmo lipduko bus prilipusi pirma arba antra nešiojama dalis;
  • antrame elemente užrašas “[1][2][3]” reiškia, kad teisingas atsakymas bus kai prie antro lipduko bus prilipusi pirma arba antra arba trečia nešiojama dalis;
  • trečiame elemente užrašas “[3]” reiškia, kad teisingas atsakymas bus kai prie trečio lipduko bus prilipusi tik trečia nešiojama dalis.

Atsiminkite tai, kad nešiojamų dalių numeriai būtinai turi būti rašomi tarp laužtinių skliaustų ‘[’ ir ‘]’, be jokių tarpų.

Funkcijos ir kintamieji:


Svarbiausios funkcijos ir kintamieji, kurios turite įsidėmėti.
Kintamieji

  • PieceCount - nešiojamų dalių kiekis;
  • errCount - padarytų klaidų kiekis;
  • possiblAnswrs - masyvas, kuriame saugomi teisingi atsakymai (jei teste pasitaiko daugiareikšmių atsakymų);
  • allCorrect - jei true, tai visi atsakymai yra teisingi, jei false - ne visi atsakymai yra teisingi;

Funkcijos

  • snap();
    Ką atlieka: prilipina nešiojamą dalį prie lipduko, jei ji yra pakankamai arti
    Argumentų kiekis: 1
    1 argumentas: nešiojama dalis
  • unSnap();
    Ką atlieka: jei nešiojama dalis yra jau prilipusi, ji atlimpa
    Argumentų kiekis: 1
    1 argumentas: nešiojama dalis
  • checkItems();
    Ką atlieka: tikrina testo atsakymus
    Argumentų kiekis: 2
    1 argumentas: jei true - tai klaidų kiekis palieka toks koks buvo, jei ne - nustatomas nuliui (klaidų kiekis skaičiuojamas iš naujo)
    2 argumentas: jei false, tai visos nešiojamos dalys užblokuojamos
  • checkItemsEx();
    Ką atlieka: tikrina testo atsakymus, kai teste atsakymai gali būti daugiareikšmiai
    Argumentų kiekis: 2
    1 argumentas: jei true - tai klaidų kiekis palieka toks koks buvo, jei ne - nustatomas nuliui (klaidų kiekis skaičiuojamas iš naujo)
    2 argumentas: jei false, tai visos nešiojamos dalys užblokuojamos
  • showResults();
    Ką atlieka: į teksto lauką išvedamas koks nors pranešimas (pvz.: klaidų kiekis)
    Argumentų kiekis: 1
    1 argumentas: pranešimas
    P.S. Teksto laukas turi vadintis results_
  • setPiecesPosition();
    Ką atlieka: nustato kiekvienos nešiojamos dalies koordinatės
    Argumentų kiekis: 2
    1 argumentas: x koordinačių masyvas
    2 argumentas: y koordinačių masyvas
    P.S. galima argumentų ir neperduoti, tuomet nešiojamos dalys prilips prie lipdukų, kitaip tarinat, tokiu būdu bus parodomi atsakymai!
  • getPiecesPosition();
    Ką atlieka: gauna kiekvienos nešiojamos dalies koordinatės
    Argumentų kiekis: 1
    1 argumentas: jei nustatyta į “x”, tai gražinamas x koordinačių masyvas, priešingu atveju - y koordinačių
  • hideTicks();
    Ką atlieka: paslepia visas varneles
    Argumentų kiekis: 0
  • enablePieces();
    Ką atlieka: užblokuoja (neleidžia jų nešioti) arba atblokuoja visas nešiojamas dalis
    Argumentų kiekis: 1
    1 argumentas: jei true - atblokuoja, false - užblokuoja

Jeigu kils kokių neaiškumų, norėsite kai ko paklausti, ar dragTest.as faile radote klaidų, o gal nepavyksta parsisiųsti šio dokumento, prašau rašykite man el. paštu adresu desper4do@walla.com arba komentaruose.

Panašūs straipsniai


“Testų kūrimas su Macromedia Flash” komentarų: 7

  1. Dalia

    desper4do su visa pagarba, prasau grazinti testu kurimo pamokas, oh, kaip sunku gyventi pasidare ju netekus, prasau atsizvelgti i flash entuciaztu pageidavimus:). Pagarbiai, ryzha/smakas:)

  2. desper4do

    Atsiprasau del to, greitu laiku bus ideta i nauja serveri.. :)

  3. Dalia

    Gerb., desper4do, gal jau yra galimybe naudotis Jusu flash testu kurimo pamokom?

    Ryzha/smakas

  4. desper4do

    Gerb. Dalia, atleiskite uz toki bjauru velavima, negalejau ideti flash pamoku internete.. Svetaines autorius pasisiule padeti, tai labai greitai bus galima jomis naudotis ;)

  5. asterisk

    Pamokų nuorodos atnaujintos :)

  6. ryzha

    Dekui gi, ka jau cia daugiau ir besakysi:)

  7. irute

    Sveiki,

    Ar bus dar kada atkurtos pamoku nuorodos?

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.