Best lesson format for e-learning - database or SWF?
Dear friends, I need to decide on best implementation/architecture for a new e-learning suite, specifically, for it's document format. The basic platform is flash/flex/air, the application is local to user's machine. The App is a viewer - it plays lesson documents.
I searched this site a lot before posting, and some posts were somewhat relevant but not in the way I hoped for. So I want to hear Your knowledgable opinion to my specific problem.
The suite is to host the hierarchy of hundreds of lessons in different subjects but all conforming to same rules:
Each lesson is a slideshow with graphic slides. Occasional slide will have interactivity (click, drag/drop, simple game, goto next slide on click). Each lesson could be either a movieclip or series of images/movieclips as slides pulled out using XML listing file and/or database. Each Slide has text fields like title, description and comments.
Each lesson has an audio track that goes through the lesson - slides change as some corresponding frase is said. This could be individual audio tracks or one audio file with cue points.
User can play/pause lesson and rewind it slide by slide or subsection by subsection.
Sometimes the lesson should pause itself and wait for input from students.
The contents should be stored locally (shipped with the app) and should be protected from accessing the assets individually (the artwork is authored copyright).
With these considerations, there are two ideas on how to implement document for lesson:
1) Lesson = Movieclip. Using Flash tool, build an SWF that will hold each slide in a new scene, split the audio into separate files for each scene, assign each audio as stream.
problems here are: - SWF's are not secure - Movieclip only supports up to 16000 frames so lesson cannot be very long or we have to lower the framerate - need to split the audio into separate files - thus, if some cue points change I would have to make and insert new audio files. - complicated syncing between audio and graphics - complicated implementation of smooth transition between slides when organized in 开发者_JAVA百科scenes;
2) Lesson = database. Create a database of Slides for each lesson, thus protecting assets from direct access. Passive slides could be PNG's, slides requiring interaction or animation coud be SWF's. Audio could be stored separately or in the same database, we could use cue points from audio editor to control the slides change. BEfore starting the lesson, we extract it from the database into temporary storage.
problems here as I see: - no "authoring tool" - have to invent the way to create databases of lessons so that someone without programmer skills can do that? - face the performance issues of database holding hundreds of BLOBs, so: - probably have to completely load the lesson from database before playing it, unlike in movieclip case, for performance reasons?
Which pattern would You choose, and maybe there are even better ideas?
If You would prefer database, could one database span the whole collection of subjects/lessons?
Thanks Beforehand, olegthesound
Having nature of your problem and Flex as event driven framework, with a good model you can get very nice app. I think separate SWF for every lesson would be a good choice, definitely no need for database.There is no need to split audio file as it can be programmatically played from specific position. Then using some timers you would show different slides on specific time. You would define different states for lesson, and user input is just one type of state you would have... Obviously you need Flex developer for this. Depending on your ambitions you can build designer for lessons and have editor for non-programmers.. all build in Flex... And you say SWFs are not safe... well, what is :)
You could use AIR, SQLite and some proprietary binary file format to store media which you stream and parse through a direct filestream.
All the features that you listed are doable in Flex. In my opinion you could use common combination - main application and some materials, e.g. text, made in Flex, and some media, like SWFs compiled in Flash, being imported at run time. You would also need to do some server-side programming. That type and scale of project would require certain programming skills, but it's all learnable and doable. So, if you refer to yourself:"someone without programmer skills can do that?", you need to invest some time to learning fundamentals of Flex. Learning the field would make you much more creative in all aspects of the design - you would learn what are the possibilities. The good thing is that there is abundance of teaching materials in any conceivable format.
HTH, FTQuest
You could also use HTML formatting with graphics like pictures and swf if you use Adobe AIR. Full HTML and XML code you could load each time client starts a lesson. Pictures and swf files you could automatically download or recover from local SQLite DB where they were previously stored.
You save lots of resources in this way. Bandwith, time etc. of your website server.
What's more, the HTLM contents of your lessons can be corrected always when needed and badly prepared lessons can be constanly improved without downloading graphics again by the client.
Notice that this solution does not always fit to every kind of eLearning site.
精彩评论