Opfriscursus HyperCard / Zelfstudiehandleiding
BEKNOPTE ZELF-STUDIEHANDLEIDNG HYPERCARD (VERSIE 2.3.5) VOOR TO EN TCW STUDENTEN
Door F. Houweling, B. Reimerink en R. Min
1e versie okt. 1996.
2e versie okt. 1997.
Deze handleiding is bij
een groot aantal vakken
te gebruiken.
Deze handleiding bevat de stof zoals
op een prakticum (in oktober 1996)
gegeven is en in nov. 1997
aan de orde komt.
In het practicumboek van het vak 'Multimedia-programmeren' en 'inleiding mediakunde' zijn - zoals jullie kunnen zien - geen echte HyperCard-handleiding opgenomen.
Er zijn namelijk veel en voldoende duidelijke handleidingen in omloop. Die kunt u - als u wilt - overal vinden. In de kast van het Macintosh-practicumlokaal (L102) liggen er ook enkelen. U moet - wat ons betreft - bij dit laatste onderdeel van dit practicum leren om te gaan met bestaand instructie-materiaal (zoals hier in dit geval met HyperCard-handleidingen). U zult zien dat dat moeilijker is dan gedacht.
Om een goed startpunt te hebben zijn er bij het practicum van het vak 'multimedia-programmeren' twee introductiedagdelen aangaande HyperCard en HyperTalk voorzien. Tijdens deze introductie(s) moet u ook al (vrijwel direct en zelfstandig) enkele opdrachten maken. De vorm van deze introductie is een soort guided tour door HyperCard en HyperTalk.
Na deze twee introductiedagdelen moet u geheel zelfstandig de multimediale eindopdracht kunnen maken. De gekozen vorm van het prakticum is 'practicum nieuwe stijl', een 'guided tour' met de gelegenheid tot 'hands-on-experiences'.
Deze introductiedagdelen zullen steeds slechts maximaal tot de koffiepauzes zijn, halverwege het dagdeel. Na deze introductie(s) dient u de specifieke opdracht geheel zelfstandig te maken.
Mocht u alles denken te weten over HyperCard dan kunnen wij u niet beletten - in een rustig hoekje - de opdrachten zonder de instructies te volgen te maken.
TWEE NIVO'S
HyperCard kent twee nivo's van werken: werken op - wat wij noemen - 'statisch' nivo en werken op 'dynamisch' nivo. Het onderscheid zit hem in het 'programmeren' van een kaart of een button of een ander 'object' OF alleen het toepassen van de (interne) tools en verder NIKS programmeren. Aangezien veel succesvolle Multimedia producten juist hun optimale effect sorteert bij meer dan 'platte' frames met losse ('mono-mediale') elementen alleen, leren wij jullie bij 'inleiding mediakunde' iets van programmeren.
Met programmeren kunt u 'statische' frames met what ever welke informatie dan ook 'dynamisch' te maken. Op het college is daar uitgebreid op ingegaan. Het practicumboek laat dit subtiele - doch essenti‘le - verschil op pagina 73 zien. Vanwege dit essenti‘le verschil (met o.a. 'STiP' en ook met 'MacroMind Director' die dat soort dingen niet kunnen) zullen we proberen bij de introductie(s) enkele demonstraties geven van wat we bedoelen.
UITGANGSPUNT c.q. UITGANGSSTELLING
De ontwerpers van dit vak hebben als uitgangspunt bij het onderdeel 'editors met oneindig veel vrijheidsgraden' de volgende stelling stelling gekozen:
- Ten eerste: SuperPaint MAAKT (en edit) visuele elementen;
- Ten tweede: QuickTime kan alleen maar lineaire video's afspelen;
- Ten derde: het World Width WEB geeft frames (pages) een HYPERMEDIA-AANZIEN,
MAAR ten vierde: HYPERCARD MAAKT HET PAS MOGELIJK ECHTE DYNAMIEK
BINNEN (OF OP) EEN FRAME AAN TE BRENGEN. Kortom de programmeertaal 'HyperTalk' kan statische dingen dynamisch maken.
Het dynamisch maken van frames kan alleen met tools met oneindig veel vrijheidsgraden, d.w.z. ('echte') 'integrated environments' (conform Preece, 1994, pag. 579 e.a.) met een ingebouwde programmeermogelijkheid. (zoals HyperCard, SuperCard, Toolbook, Visual Basic en in iets mindere mate met AutorWare e.d.). Preece rekent ten onrechte 'MacroMind Director' en 'QuickTime' ook tot de 'integrated environments'. (Wij - bij TO - rekenen MacroMind Director, SoundEdit en QuickTime tot de (gewone) 'complexe tools' voor lineaire - mono-mediaire - elementen.)
Hier volgen dan nu de belangrijkste zaken aangaande HyperCard zelf:
WAT IS HYPERCARD?
HyperCard is vijf dingen ineen: een tekstverwerker, een grafische editor, een soundmachine, een databank systeem, en een auteurstaal. Een aantal dingen kan HyperCard niet, namelijk een aantal aparte losse elementen aanmaken en editen, zoals mooie lineaire animaties en video-filmpjes maken. Maar HyperCard kan deze losse elementen wel integreren en er verder dynamiek in (of over) aanbrengen.
AANZETTEN VAN HYPERCARD
HyperCard kunt u opzoeken en aanzetten door dubbel te klikken. Er zijn nog andere methodes. Die kent u inmiddels wel. Wij gebruiken dit jaar HyperCard 2.3.5. Als u HyperCard niet kan vinden kunt u HyperCard zoeken met het 'find'-commando van MacOS. Maar u kunt ook de speciale HyperCard 2.3.5. alias - uit de folder "Algemeen' - gebruiken.
Als u eenmaal een programma of een bestand op de fileserver - of waar dan ook - gevonden heeft is het altijd handig om zelf ook aliasen te maken en deze vervolgens - ergens bij uzelf (bijv. op een los floppy) - op te slaan. Dan hoeft u nog maar zelden te zoeken en raakt u de weg op het TO-netwerk niet meer kwijt. U hoeft alleen nog maar een los floppy met allemaal eigengemaakte aliassen te hebben. Zelfs het inloggen op het TO-netwerk gaat op deze manier veel handiger. Maar dat terzijde.
INSTELLEN VAN HYPERCARD
HyperCard heeft een zogenaamde 'home-stack'. Als u HyperCard 'gewoon' heeft opgestart (zonder stack) komt u hier vanzelf in. De home-stack is een aparte, speciale stack voor bepaalde instellingen: zoals het nivo in stellen waarop iemand er mee mag werken. Die 'home-stack' bevindt zich in de 'system folder' op uw harde schijf. Deze home-stack moet u in HyperCard aanpassen om HyperCard op het hoogste nivo, het nivo van programmeren e.d., in te kunnen stellen (nivo 5). Het laagste nivo is alleen maar kunnen browsen: nivo 1. Die instelling zit - ongelukkigerwijs - op de laatste pagina van deze home-stack'. Dus even slim zoeken met de 'go back'-knop i.p.v. de 'go next'-knop, svp...
Een gewijzigde (eigen) home-stack moet u altijd (ergens op een van uw eigen gebieden) bewaren steeds - voor het gebruik van HyperCard - kopi‘ren naar de systemfolder van het systeem waar u op werkt. OMDAT dit relatief tijdrovend is kunt u veelal maar beter het gebruiks-nivo met de hand instellen.
ENKELE DEMO'S
In HyperCard kunt u een aantal demonstratie stacks met (standaard) attributen afspelen. Die attributen zijn publiek te gebruiken ('public domain'). U mag daar naar hartelust uit knippen en naar uw werkstuk overbrengen. De stacks zitten in de HyperCard folder op 'TO1.sys' in de map 'macprog' en 'multimedia'. Een kwestie van even netjes - en geduldig - leren zoeken.
Het zijn stacks met de (folder-)naam: 'HyperCard Stacks', 'More Stacks' en 'HyperCard Help'.
Voor het practicum zijn ook een aantal speciale demonstratie-stacks gemaakt. Die mag u gebruiken, maar niet zomaar overnemen. Bij overname van objecten of scripts uit deze demonstratie-stacks dient U op zijn minst de bron en/of de auteur(s) te vermelden: Toegepaste Onderwijskunde. Copyrights, You know.
Met deze speciale demonstratie-stacks zijn enkele specifieke fundamentele begrippen te demonstreren, zoals een zeer eenvoudige en kleine 'visuele spreadsheet, 'echte dynamische graphics', 'interactieve objecten', 'groeiende grafieken', 'intelligente objecten' en 'intelligente feedback' en dat alles gemaakt in HyperTalk/HyperCard, zoals
te weten:
1. Een HyperCard 'kaart' in de rol van een 'dynamische graphic' annex 'visuele spreadsheet' (Geld.model/CALC) (om guldens in dollars om te rekenen);
2. Een HyperCard 'kaart' in de rol van een visueel 'rekenvel' (een 'visuele spreadsheet') voor simulaties (VisualNetwork) (om stromen en spanningen door te rekenen);
3. HyperCard stacks in de rol van een grafisch plot systeem (PLOTS)
4. HyperCard stacks in de rol van een adressenbestand systeem (Adressen).
5. Een HyperCard stack, van 20 kaarten, in de rol van een 'ontdek-omgeving' (DemoDesk) (een echt volledig visueel hypermedium met klassieke grapjes).
Het algemene kenmerk van al deze demonstratie-programma's is dat de auteurs getracht hebben een begrip in de minimaalste vorm in een voorbeeld-programma te gieten.
DEMO'S DRAAIEN
Als u tijd heeft moet u deze demonstratieprogramma's - geschreven in HyperCard / HyperTalk - eens draaien. Sommige stacks (zoals 'geld.model/(Calc)') moeten eerst 'gedown-loaded' worden door ze even op de desktop te 'slepen' c.q. 'neer te zetten' en dan te 'runnen', omdat het fileserver-gebied waarop ze zich bevinden voor studenten 'read-only' is. Sommige demonstratie-stacks 'schrijven' namelijk iets in de kaart van de betreffende stack. Bijvoorbeeld de 'spreadsheet' in de stack 'geld.model/(Calc)' en de 'visuele spreadsheet' voor simulaties (VisualNetwork) schrijven het getal dat u intypt daadwerkelijk op de bovenliggende kaart. Op de desktop kunt u gewoon alles: 'lezen' en 'schrijven' in stacks, omdat dat gewoon uw eigen harde schijf is. Daar mag u immers alle soorten handelingen - zoals lezen en schrijven - met een programma verrichten.
DOWNLOADEN
Om - voor uzelf en de TO-gemeenschap - het prettigste te werken verzoeken wij jullie je testprogramma's en werkstukken altijd - v——r het runnen of v——r een bewerking - op de lokale harde schijf te zetten. Dan kunnen u en andere TO-ers rustig en ongestoord werken en 's avonds up-loaden en 's morgens - of wanneer u maar wilt beginnen - te 'down-loaden' en er is dan een minimale file-vorming.
OPDRACHT 1
Zoek HyperCard op en zet het aan.
Tip: HyperCard kunt u op vijf manieren aanzetten: 1. dubbel klikken in HyperCard zelf; 2. dubbelklikken in de specifieke stack die u wilt hebben; 3. via 'stack openen...'; 4. door uw stack op HyperCard te 'gooien'; 5. door het klikken op eigengemaakte aliassen.
OPDRACHT 2
Zet de home-page instellingen goed.
OPDRACHT 3
Maak een nieuwe stack met daarbinnen een background en 3 kaarten.
Tip: Als u het commando 'new stack' neemt ontstaat er een nieuwe stack met EEN lege achtergrond en EEN lege kaart. Zet de stack direct op de juiste plaats en geef hem direct een unieke naam. Door het pull down menu commando 'new card' krijgt u een nieuwe kaart.
OPDRACHT 4
Geef elke kaart een merk-teken. Dat mag met het potloodje, het kwastje of middels een of meerdere woordjes (via A). Als u tijd genoeg heeft mag u ook het vierkantje en de andere tool-attributen uittesten.
OPDRACHT 5
Teken nu iets in de background.
Tip: de background kunt u bereiken via het 'edit'-menu en het item (of commando) 'background'.
PS. U kunt zien dat u in de background zit te werken, doordat er een v-teken (een ('vinkje') voor het item komt te staan en/of omdat de menubalk anders wordt.
OPDRACHT 6
Maak een button en stel het juist icon in.
Tip: Doe dat met "new button" en het icon-teken in de tools.
Tip: Zolang de button trilt kun je haar plaats en haar afmetingen vast leggen.
OPDRACHT 7
Maak een button die naar een andere kaart kan springen.
Tip: Doe dat met 'new button' en de opdracht 'Link to'. Ga met de pijltjes-toesen, onder de dialoog-box door, naar de kaart van uw keuze. En gebruik vervolgens het item 'this card'.
OPDRACHT 8
Maak in de betreffende button ook een visueel effect.
Tip: via 'Task'
OPDRACHT 9
Maak een field op een kaart en schrijf op de kaart ascii-teksten in dat field.
Tip: via 'new field'
OPDRACHT 10
Geef eens een aantal commando's via de message-box.
Bijvoorbeeld: go to last card, go to first card, 2 + 3, sin(60), etc.
OPDRACHT 11
Pak de button die je bij de 'link to'-opdracht hebt gemaakt. Klik de button open en kijk naar het script. Wis de middelste regel en programmeer een rekenopdracht in dit script. Regels in een script noemen we een 'statement'. Enkele voorbeelden:
put 2 + 3
put 5.4 * 6.3
put 20/5.5
put sin(60)
put etc.
Let op: De output van dit 'mini-programma' komt bij 'executie' ('runnen') in de zogenoemde 'message-box'. De message-box is de eenvoudigste output-techniek binnen HyperCard. Andere output-technieken komen later aan de orde. (Zie bijvoorbeeld opdracht 17.)
Let op: de hier vermelde statements dienen altijd tussen twee andere statements te staan. Hier 'on mouseUp' en 'end mouseUp'.
OPDRACHT 12
Pak de vorige button. Klik de button open en wis de middelste regel in dit script. Maak het mogelijk dat u iets kunt 'openen': bijvoorbeeld een plaatje. Maar zelfs een programma openen is mogelijk. Het is zelfs mogelijk in het script een telefoonnummer op te nemen en de button te laten telefoneren. Bijvoorbeeld:
open "xxx"
picture "HartK"
Let op: Het plaatje "HartK" dient vooraf bij jouw stack op de hard-disk gezet te worden. Anders vind de procedure het plaatje "HartK" niet. Dat geldt evenzeer voor het programma "xxx" dat u via de methode "open" in HyperCard kan openen. Zoe iets moet altijd BIJ de betreffende stack IN DEZELFDE folder staan.
Er zijn methoden om hier aan te ontkomen. Daarover later meer.
HET VOLGENDE ONDERWERPEN (OPDRACHTEN, STATEMENTS, PROCEDURES, HANDLERS EN/OF FUNCTIES) WORDEN DIT JAAR NIET TIJDENS DE GUIDED TOUR GEOEFEND:
visual effects (in een script)
drag (in een script) (geen oefening; wordt alleen verteld)
open (in een script)
on CloseCard, etc. (in een script) (geen oefening; wordt alleen verteld)
hide (in een script) (geen oefening; wordt alleen verteld)
show (in een script) (geen oefening; wordt alleen verteld)
go to (in een script)
choose (in een script) (geen oefening; wordt alleen verteld)
Tip: Na de twee instructie-lessen (de twee 'guided tours') en het geschrevene in het practicumboek spreken dit soort dingen vanzelf.
OPDRACHT 14
Maak een 'geprogrammeerd muziekje' in een button.
Tip: via 'play' met 'harpsichord'.
Tip: bijvoorbeeld: "a4 f c4q c5e" of "a b c d e f g"
Tip: vergeet de twee quootjes " " niet. De intepreter ziet het ingeprogrammeerde melodietje namelijk als een gewone tekst-string. Tekst-strings met spaties moeten in HyperTalk altijd worden omgeven door quootjes. (Gebruik hier geen '-tekens)
(Zie ook pag. 70 van het practicumboek.)
OPDRACHT 15
Maak een script met een repeat loop waarbinnen een tellertje loopt.
Tip: via 'repeat' en 'put i+1 into i'.
OPDRACHT 16
Maak een dialoog-box met een vraag en 2 antwoord-mogelijkheden (A en B) ('inklik regio's') en er moet gecancelt kunnen worden. Als de user A kiest moet er een '1' in de message-box komen en als de user B kiest moet er een '2' in de message-box komen.
Tip: via 'Answer', 'Cancel' en een 'if'-statements.
OPDRACHT 17
Maak een button welke getallen (of teksten) kan schrijven op een andere kaart, met de naam "twee" in een veld met de naam 'output'.
Tip: via 'put ... into line ... of card field ... of card ...'.
OPDRACHT 18
Maak een button welke getallen (of teksten) kan lezen uit een veld 'input' op kaart 'Een' naar een variabele dan bewerken en dan wegschrijven naar veld 'output' op kaart 'Twee'.
Tip: via 'put line ... of card field ... of card ... into ... '
Tip: via rekenstatement bijvoorbeeld: put i*5 + 10 into i
OPDRACHT 19
Ga de voorgeprogrammeerde buttons van de stack 'werkstuk' in de folder 'eindopdracht' alvast eens bekijken.
Tip: Pak de lege eindopdracht-stack 'Werkstuk' en bekijk de scripts van de gegeven buttons.
Tip: Het betreft de stack 'Werkstuk' in de folder 'Algemeen' en de folder 'Eindopdracht'.
U zult zien dat deze scripts iets gecompliceerder zijn dan vermeld. Dat is noodzakelijk om allerlei neveneffecten 'af te vangen'. Doch de essentie van deze buttons is dat er een extern bestand kan worden 'geopend'.
HUISWERK:
1. Stuk over de eindopdracht alvast doorlezen. (Practicumboek, 1996,
pag. 106 t/m 124)
2. De werkstuk stack alvast eens bekijken (in de folder 'Algemeen') zoals
in opdracht 19 staat beschreven.
Rik Min, Enschede, 10 okt. 1996.