I've been in touch with Jamie Pratt and we've discussed creating a new version of the Moodle Flash module for Flash 9 (CS3).
I can handle the ActionScript 3.0 and Flash side of things but any help and collaboration would be most appreciated. If you'd like to help, please post a message here.
Why should we upgrade to Flash 9?
There's a whole host of benefits to using Flash 9 and ActionScript 3.0, notably:
1. It's never been easier to do captioning on FLV files, even in multiple languages. Imagine being able to add lecture notes to your video or audio presentations. Plus the FLV container supports AAC (Advanced Audio Compression) which gives higher quality at low bit rates than MP3 making it just as simple to add captions to audio-only files. You can find a short, sweet simple tutorial on how to do it here: http://www.adobe.com/devnet/flash/articles/filtering_data_e4x.html
2. XML is a native datatype in ActionScript 3.0. Since XML is the perfect data format for eLearning, this makes it much easier to use and opens up more possibilities for developing applications using it.
3. ActionScript 3.0 is a fully OOP (Object Oriented Programming) language. This dramatically reduces the amount of time it takes to create new Flash eLearning modules, and makes the code easier to read and develop for collaborators on projects.
4. The new events architecture (how Flash interacts with people and data files) is radically different and allows much higher degrees of interactivity. Also the 'hit areas' of display objects are more specific - circles behave like circles, triangles behave like triangles - there's no more 'invisible overlaps' (unless you want them of course!).
5. The new 'display list' does away with the need to constantly create and destroy objects (which creates a high processing overhead). Objects can be added and removed from the display list and they retain all their properties, plus they can be easily moved from one container to another with a single command, opening up new possibilities for 'drag and drop' and 'click to move' activities.
6. And finally, ActionScript 3.0 is up to 10 times faster than ActionScript 2.0, making true 3 dimensional modeling and other processor intensive applications more of a reality. You can see a great demo of Papervision3D here (please excuse the geekiness - they're programmers!): http://onair.adobe.com/blogs/videos/2007/11/27/interview-with-ralph-hauwert-on-papervision3d/
Anyway, there's a lot of reasons to upgrade, these are just a few. I think Moodle combined with Flash 9 could really make a big impact on eLearning in general.
Please help this project!
Matt

Re: Flash module add-on: Let's update the Flash module for CS3
I am very excited and impressed by this push to revive the Flash module.
I have used the module in the past and, unfortunately, had to abandon it in favor of Captivate to create trackable rich-media content for Moodle. I'd like to defect and come back to the Flash module if possible.
The Flash module is a worthy candidate for further work and development. I am not a programmer or developer per se, but I'm a fast learner.
I'll follow the forums here and pitch in with whatever I can.
I guess this means downloading the current Flash module and source code and rolling up my sleeves.
It's early and there's a lot ahead of us, but at least you know you have one more warm body on the project.
If there is any grunt-work or such that needs to be done, send it to me.
In addition, I enjoy making Captivate tutorials, so perhaps I can use that skill to educate users once things get rolling.
Cheers for you and for Jamie Pratt for wading back into the fray!
Thank you very, very much for (re)starting this project.
Chris
Re: Flash module add-on: Let's update the Flash module for CS3
I've decided, for the moment to try to bypass the Moodle Flash module and use the service.php and library.php scripts to communicate with the database directly.
I reckon a simple function within a Flash SWF that communicates with service.php should be enough, and not too difficult to implement for anyone who's authoring stuff in AS 3.0. It'd be a simple case of copying and pasting a few lines of code...
...or so I hope. I'll post details of my progress in the near future.
By the way, I was experiencing some strange behaviour in IE7 (don't we all!) from using the simple tags to embed my SWFs. I worked out a pretty good solution, which you can find on this post: http://moodle.org/mod/forum/discuss.php?d=88524
Wish me luck with my experiments!
This forum post has been removed
Re: Flash module add-on: Let's update the Flash module for CS3
Yes, that's the idea.
The moodleService.* functions are in a separate object that handles the score, answers, and elapsed time variables from Flash and sends them to service.php. What I have to do is work out what format moodleService sends the data in, and try to reproduce that in AS 3.0. Since PHP and server side programming are not my forte, it's gonna be a quite an involved learning experience.
The reference books on Flash and PHP that I have are in AS 2.0. The way AS 3.0 handles external data is very different. The reference books I have on AS 3.0 only cover integrating Flash with PHP and server side programming very briefly. Any help from anyone would be greatly appreciated.
BTW - The AS 3.0 classes for this are: URLRequest, URLLoader and FlashVars.
Wish me luck!
This forum post has been removed
Re: Flash module add-on: Let's update the Flash module for CS3
Thanks for the link Cathy, it'll certainly come in handy!
Having looked at the source files for the AS 2.0 Flash module, I have a bit of a problem. I can't find some of the classes that handle sending the data to serice.php.
There's stuff there to convert the values into an XML string but the actual moodleService function proves to be elusive. I'll have another look but if anyone can point me in the right direction, I'd be grateful.
The XML handling part will be much easier in AS 3.0 - Since it's a native datatype, there's no need to writed these long, convoluted functions to tack bunches of strings together before sending them to PHP. You just create an XML object and feed the data into it, in a similar way to an array. The XML class takes care of the rest for you. How easy is that?
Re: Flash module add-on: Let's update the Flash module for CS3
Mat nice to see you pushing flash 9!!.
I am new to Moodle and trying to get my head around all different flash usages with moodle. My personal interest is in building up a "moodle AMF" via AS3 & amfphp.
Click here to view "moodleAMF" post
I'm also trying to make sure all the right people are following this, to either help out or enlighten a newbie (being right or wrong) by atleast pointing me in the right direction for getting moodle AMF'd up! :P
Cheers
Marcus
This forum post has been removed
Re: Flash module add-on: Let's update the Flash module for CS3
I've messaged a few developers, looked at the FAM again, thought about the problem with different versions of Flash as a whole and also about different types of interactive objects that are out there that can be used for elearning (e.g. Silverlight).
WIth all this in mind, I reckon a different strategy would be more productive for the majority of people. The FAM should stay as it is because the standard preset quiz template and components are basically the same in all versions of Flash since Flash 6. This makes using Flash MX 2004 (Flash 6) to create learning interactions without doing any coding possible and is important to attract new Moodle users.
What I propose is to create a new 'generic' activity module that can handle and receive results from whatever kind of interactive object you choose to use with it. This will do away with compatibility issues with different versions of Flash or other types of interactive object. The new activity module just has to embed the object in the given page and then wait for the results from it. The interactive object (Flash or Silverlight) then just has to send the results in the appropriate format to the PHP in the activity module to process and send to the Moodle database.
Offering good documentation in Moodle docs with plenty of example code for different Flash versions would help novice developers to get the results they're looking for and make the whole setup more flexible. Since the Moodle side of things will already be set up, the new module would be a lot more attractive to Flash developers wanting to work with an LMS, and it would be a lot easier for schools, colleges and universities to hire Flash developers to work with Moodle.
I think this would fit in nicely with Moodle's Open Source modular philosophy and open it up to more developers who can use it and contribute to it.
What do you think?
Re: Flash module add-on: Let's update the Flash module for CS3
First post here and one of those "new moodle users", potentially anyway. I represent my company who are 95% of the way to signing a deal to create some ESOL modules.
We're very proficient AS3 developers, we came from the fray of AS2 but would rather not go back if we can help it :S. Ive read through the related posts up to todays post. Upon reding it it translated to this :
"We need to write an abstracted layer [likely with some PHP wrapping] which will deal with moodles API's. This will offer a cross platform solution independent of your interface of choice [flash / silverlight]"
Now i ask you this, as an AS3 (we do PHP and other server side scripts too) Studio what would you recommend for us at this point. Is there some shared resource of this magic PHP interface somewhere to look at? We would love to retain the AS3 and might be willing to help build the PHP as we go to bring it to a usable standard.
If anyone else is reading this, is there any sort of public ETA or notification on whether Moodle is implementing AS3 themselves and when are they trying to do it by....(that would be a nice shortcut ;) ) but all the same i think Matt's point from a developers POV makes the most sense, abstract the API with the common medium [PHP] and then interface using your enviroment of choice.
Am i coming accross clearly?
Cheers
Kevin Jones @ Twisted Studio
Re: Flash module add-on: Let's update the Flash module for CS3
I love the way you condensed my rather verbose proposition into 2 sentences. That's a much better way of putting it. I understand your reluctance to go back to AS 2.0 (first cycle no less! - i.e. Flash 6). AS 3.0 is basically the bare minimum that a developer needs to do efficient server-side communication and to incorporate eLearning's best practices. Having XML as a native data type and more stable and convenient handling of external media is such a relief!
Martin Dougiamas has quite rightly pointed out that basically we're talking about something like the SCORM module, so I'm going to have a look at that.
I've downloaded the Moodle module template and I'm looking at that too.
As far as I know, and from the feedback I've had from the developers here, Moodle doesn't have any plans to update the Flash Activity Module. They seem to be pretty busy working on Moodle 2.0, which promises better and brighter things. Let's hope that includes making it easier to incorporate 3rd party learning objects.
The most useful stuff I've found is the Dreamweaver extension for creating SCORM packages:
http://www.e-learningconsulting.com/products/ManifestMaker/ManifestMakerHelp.htm
http://www.e-learningconsulting.com/products/ManifestMaker/ManifestMaker.mxp
It's really simple and easy to use and I've set up an eLearning object on Moodle with it in just a few minutes, but with a lot more reading time! I haven't got the tracking to work to record the results yet. I guess those are questions for the SCORM forum.
So, instead of a PHP wrapper, we've got a ready-made client-side Javascript wrapper that handles it all for us. I hope I can get the tracking bit sorted out as easily!
Re: Flash module add-on: Let's update the Flash module for CS3
Weird thing is i actually came to moodle because i was told by a peer "whats Scorm and whats Moodle?" to which i drew two banks and ran off reading about. Ive been huddled in pure theory luxery at the moment bacuase our project doesnt begin until the start of March.
I've been reading this http://www.ostyn.com/standards/docs/Eye_Of_The_SCORM_draft.pdf
which offers a very nice thourough (and not to intense) description about all of SCORM, im only up to chapter 5 but i have a fair understanding on how it all works (or should work ;))
A dreamweaver extension you say
Now as for communication things well, on my travels through BLOGS you may already have seen this one but i did bookmark this
http://pipwerks.com/lab/scorm/wrapper/flash/AS3/SCORM.as
Which i do notice has a get and set parameter function or two. Now from brief overview it makes good use of the external interface class for browser communication. Of course , (i feel a little of a slacker compared to you at this point), i'm neck deep in another project . I still havent even done my first moodle SCORM package, though i think i'l find time this week.
In the mean time i'l be happy to share findings and i'm reading as much as possible before i jump in
Re: Flash module add-on: Let's update the Flash module for CS3
http://pipwerks.com/lab/scorm/
And see tyhe AS£ wrapper demonstration. He has a couple of .js as well. Perhaps he is replicating the Dreamweaver solution. Anyway maybe its the holy grail maybe its just a crappy wooden cup, you;l proabbly get to test it before i do :D
Re: Flash module add-on: Let's update the Flash module for CS3
I've saved the .as file in my class path and I'll have a play with it later.
I've played around with the SCORM module and had a good think about the format and the way it works. I think it's too general a standard to be efficient. The SCORM standard is supposed to work on or off-line which is why it's in Javascript.
The SCORM standard stipulates that you have to include ALL the necessary resources for a learning unit in the zipped package - you can't use HTTP references. This means that if you have a general audio file for giving instructions that you need for a large number of learning units, you'll have to make a copy of that audio file for every unit.
This seems ridiculously inefficient for any on-line eLearning school that wants to develop integrated courses where constant recycling and revision is vital, especially for learning foreign languages. If you want to change or update a single resource (text, audio, video, image) there's only one copy of it to edit. There's also greater and more convenient opportunities for courses to share media/resources. With this in mind, a PHP wrapper option looks very attractive.
SCORM is a fantastic idea and it makes creating eLearning content very accessible for educators but it's very inefficient and, in the long run, difficult to use. Just imagine if you wanted to update your course - you'd have to go through every zipped package to change it!
The SCORM standard stipulates that the packages must run off-line. Hence the dependence on Javascript, no HTTP references, no calls to databases and having isolated lesson units that cannot share media/resources. As I've said earlier, this is very limiting and potentially very time consuming in the long run if you want to make changes to a course 'on the fly' as it were. I think a lot of course designers who use SCORM will end up re-writing a lot of their content many times because of this. Writing course material for human beings isn't the same as writing code for computers and the iterative design pattern (i.e. write it, test it, change it, test it, add to it, test it, change it, etc.) is the only really effective one.
Moodle can't run off-line - it's an entirely back-end system, therefore there are none of the off-line benefits of the SCORM standard but all of the drawbacks!
The Flash activity module was a good idea. It's much easier to use and much more efficient. I think its main drawback is that it's medium-specific i.e. You can only use it with Flash 6. If you give developers and course designers the freedom to choose whatever medium they want to create their learning modules in, this would be a great improvement, hence I love the idea of the PHP or even a Javascript wrapper to handle the Moodle gradebook end of things.
We already have what Jamie Pratt has done with the FAM to work with - many thanks to him and his good work on that. I think that'd be a good starting point.
I think we need a game plan:
We need to come up with a specification of what we want the new activity module to do.
We need to make it a accessible to course creators and developers alike.
We need good documentation and support to help people to deploy lessons using the module.
...ok, this is just a start. Any contributions and ideas are welcome. Any criticisms and observations are welcome. Questions are welcome. If anyone wants to volunteer to do any part of this - PHP, MySQL, Javascript, documentation, etc. - It'd lighten the load and move things along faster. That's the spirit of open source. We and a lot of other people could really benefit from this. Let's make this thing happen!
Awaiting your replies,
Matt
Re: Flash module add-on: Let's update the Flash module for CS3
I'm not sure i'm going to be able to get away with not using a scorm complient standard. They want the educational suite to run offline as well as online.
Your points about resources and scorm packages are well said , resource copies are bound to happen, i do believe i read that the SCORM peeps are in the process of trying to remedy that. I do think because i approach these technollogies fresh i can offer a certain view point:
We have a project, now lets call it X, and X has 24 parts which is going to be broken down into three installments. Now at this point i have the option of making each part a scorm package.... great so its easy , one at a time.
But... we run into the resource duplication and rewriting. Instead because i know scorm uses its package as a package which holds: the order o f schedule of the SCO's (Shareable Content Object), the SCO's , and the assets (sounds, text, games, gfx). I should make my 3 chapters the Scorm package. To me this reduces the inefficieny and i still get to please my client.
Also the scenario you face is also this , all you resources have one origin, for myself as a developer i think i'm attoned to these "standards" turning up and then workin to them , it makes working with other developers a little less painful (most of the time)
I couldnt openly commit to any extra coding right now
I think my interest's until they are shattered will remain with the SCORM efforts and in the AS3 wrapper i sent you earlier, (purely because i have to
Re: Flash module add-on: Let's update the Flash module for CS3
Good points well made.
Enlarging SCORM packages to encompass whole courses or parts of courses does seem a good way to reduce its inefficiencies. Ultimately, this is a question of scope. You're a developer so you know the score - you have to decide how broad a scope each and every part of your project has to have. Sometimes something is very specific and narrow, and sometimes it's better to make it available globally and the range of scopes in between. It would be nice to be able to choose and also to be able to create specific 'overlaps' in course content and media. The SCORM format makes this impossible.
I think the OOP model is a particularly easy and efficient one and it works equally well with educational resources. Actionscript and Javascript are both client-side technologies and so can fulfill the 'can operate off-line' stipulation. They're also fully OOP languages. In fact, there is already a plethora of educational material that operates exclusively client-side. I use the stuff on a regular basis. I think we should strive to create a system that exploits the benefits of the concept of the OOP model to the full. In other words, apply OOP to organising eLearning materials.
In my opinion, SCORM is trying to cover two very different areas of software development and falling short on both. It's a strange animal. I can see the need to be able to continue with educational programmes when the Internet is 'acting up', and the desire to reduce the load on servers by making most of the processing client-side. All these are issues that require careful thought and pragmatic solutions and I think a one-size-fits-all approach isn't particularly productive in the long run (I can imagine a lot of course content creators cursing the day they ever decided to adopt SCORM at some point in the future). Also, SCORM doesn't really comply with the spirit of eLearning standards (at least my interpretation of them) in making resources as shareable and re-useable as possible.
As you said in your post, the people working on SCORM are aware of these problems and are working on them. We may well see SCORM evolve into quite a different animal or even fragmenting into 2 or 3 different standards in the not too distant future. But only time will tell.
We're at the beginning of the eLearning revolution and things aren't really falling into place yet. SCORM is an important stepping-stone to making eLearning accessible to content creators but I can see some clever bunnies, at some point, coming up with an elegant, efficient solution that'll take the world by storm. Why can't it be us?
I'm studying up on PHP, SQL and the general area of sending user scores to the Moodle database. I'm also looking around for the activity module that is nearest to what we want to do, so that I can study it and learn from it.
I've been on my PHPAdmin, looking at the Moodle database tables too, hoping to get some insight into how to set up a user score table, and I'm wondering: with the NEWMODULE.zip files, how much of this kind of thing is already taken care of in the PHP code?
Since I'm not a PHP developer, it's a bit of a painstaking process of going through the files, one by one, and trying to make sense of them. I'm learning a lot but I'm sure someone out there could speed things up a bit for me. The basic PHP functions and syntax I can learn from some tutorials I've got and looking stuff up on php.net. What I'd really like are some pointers specifically about Moodle, the activity modules and how it all works.
I know there's quite a few people who've made their own modules and it'd be great if you could help me out in any way possible. You know, just to speed things along a bit.
Also, if anyone wants to help out, please feel free to chip in. The Flash part is no problem for me - I can already set up simple database tables and operate them through a combination of Actionscript and very basic PHP and SQL. I'm working on some AS 3.0 classes that I hope'll take the grunt work and headaches out of communicating with Moodle from Flash.
By the way, does anyone have any thoughts on whether the wrapper should be PHP (server-side) or Javascript (client-side)?
Thanks in advance for any help.
Matt.
// Make xml available throughout the FLA code var xml:XML; // Create TextFormat object to format TextField var format:TextFormat = new TextFormat(); format.font = "Trebuchet MS"; format.bold = true; format.size = 15; var field:TextField; // create instance of PHPXML class var phpxml:PHPXML = new PHPXML(); // Listen for when the phpxml object has loaded to data from the PHP file phpxml.loader.addEventListener(Event.COMPLETE, traceXML); function traceXML(event:Event):void { // Retrieve the XML data from phpxml by calling the returnXML function xml = new XML(phpxml.returnXML()); // Create TextField to display data field = new TextField(); field.multiline = true; field.autoSize = TextFieldAutoSize.LEFT; addChild(field); // Populate TextField with data for(var i:uint = 0; i < xml..player.length(); i++){ //trace(xml..player[i]); field.appendText(xml..player[i] + " : " + xml..score[i] + "\n"); } // format the text field.setTextFormat(format); } |
Here's the PHPXML class. In this case you can just drop it into the same folder as the FLA file:
package { // Import the necessary classes import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.*; // Sprite class contains all the necessary listener architecure which // makes loading external data very easy public class PHPXML extends Sprite { public var xml:XML; // xml is referenced by FLA script public var loader:URLLoader; // loader is referenced by FLA script private var url:String = "http://watchtvlearnenglish.com/test_bed/get_scores.php"; // Load the data from the PHP script public function PHPXML () { /* create a Date object to provide a unique URL to load the XML created by the PHP script. This prevents errors from browser caching. */ var date:Date = new Date(); // Create loader object to load PHP data output loader = new URLLoader(); // Add listeners to check for asynchonous events loader.addEventListener(Event.COMPLETE, dataLoaded); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); // Create request object to send call to PHP and load response data var request:URLRequest = new URLRequest(url + "?" + date); // Send the request and check for errors try { loader.load(request); } catch (error:Error){ trace("Unable to load URLRequest: " + url + "?" + date); } } // A function to call from the FLA code to use the data // var xml:XML = XML(phpxml.returnXML()); public function returnXML():XML { // trace(xml); return xml; } private function dataLoaded(event:Event):void { // Reference the loaded data to xml as XML // Referenced in FLA as xml xml = XML((event.target as URLLoader).data); } private function securityErrorHandler(event:SecurityErrorEvent):void { // always handle security error events trace(event); } private function ioErrorHandler(event:IOErrorEvent):void { // always handle in-out error events trace(event); } } } |
And finally, here's the PHP SQL code:
<?php // get the file with the database entry info variables include("db.php"); // connect to the database using the variables from db.php mysql_connect($host, $user, $pass); // look up the database mysql_select_db($database); // variable to hold number of scores we want $numScoresToGet = 20; // send an SQL query string to the MySQL server to get the top 10 high scores // from the a_highscore table and order them by score descending $result = mysql_query("SELECT * FROM `a_highscore` ORDER BY score DESC LIMIT $numScoresToGet"); // print the results of the SQL query in the browser window $i = 1; // create variable to hold XML file and start the XML encoding $scoresxml = "<?xml version='1.0' encoding='utf-8'?><highScores>"; while ($i <= $numScoresToGet) { // extract the next score in the results of the SQL query $row = mysql_fetch_array($result); extract($row); // create XML node <line> with player and score variables inserted $scoresxml.= "<line><player>".$row['player']."</player><score>".$row['score']."</score></line>"; // store the lowest high score in a variable if($i == $numScoresToGet) { $lowestHighScore = $score; } $i++; } // end XML $scoresxml.= "<lhs>$lowestHighScore</lhs></highScores>"; // print XML in browser or send to Flash via an HTTP request echo $scoresxml; ?> |
And this is everything that you need to retrieve and display data from a database in AS 3.0 Flash. I expect anyone used to database work in AS 2.0 will be rushing to upgrade to CS3. It's also a lot more stable and a lot easier to make your apps error tolerant.
Re: Flash module add-on: Let's update the Flash module for CS3
A little about me: I'm a multimedia developer for a hospital in South Australia, building flash and web-based learning objects mostly for medical staff (soon-to-be doctors, nurses, midwives, etc., rural docs, bring the vetran docs up to speed on new methods and technologies, etc etc etc). We're in the process of incorporating Moodle into many of these courses, and have some completed and upcoming flash projects that we'd love to incorporate.
I'm pretty dandy with the old AS2, PHP, a bit of Javascript, and wouldn't mind adding to the documentation either. Please sing out if I can be of any help.
Cheers,
Zoe
Re: Flash module add-on: Let's update the Flash module for CS3
Great to have you on board!
So you're using AS 2.0 - Which version are you publishing to? MX? 7?, 8?
I think a lot of people are still using earlier versions of Flash, so we need to keep whatever we make useful for all versions 6 - 9+. This may include posting different versions of AS code for developers using different versions. My idea is to make the PHP code and its output as generic as possible to accommodate all versions. What do you think?
I'm doing a bit of a crash-course in PHP but it seems pretty easy to pick up. One thing I've learnt is that browsers cache the 'echo' output from PHP web pages, so you have to put a unique query string at the end of the URL in Actionscript to make sure you only get it from the server, not from the user's browser cache.
We should definitely use XML as a standard. It's heavier that other types of data transfer but it's perfect for educational purposes and for that reason the clever bunnies at W3C have decided to ask everyone to use it. You can see why - just think of it as a multi-dimensional array that's easy for humans to read. What do you think? Is this reasonable?
XML is a native data type in AS 3.0 and so doesn't need any processing once it's inside Flash 9, but in AS 2.0 you need to convert it into an array or a group of parallel arrays. Once it's in this form, it's very easy to handle. The best tutorials I've seen on how to do this are on Lee Brimelow's own website here:
http://gotoandlearn.com/index.php?as=2
Another stipulation by WC3 is that the content and presentation should be separate so that any media can be re-used. The definition of content is everything that you need to make up lesson - texts, questions, answers, audio, video, images, animation, etc. - and the presentation is the SWF that pulls it all together, organises it and 'presents' it to the learner. In this way, in a truly dynamic LMS you only have to make a small number of SWFs to make a great number of lessons. You also have to option of creating a semi-dynamic LMS where you only have to edit XML files (that's where the 'easy to read by humans' bit comes in). At a rudimentary level, you can even replace databases with a series of XML files to create dynamic content - I've even created entire websites in Flash that use only XML, but of course it's much better to use it in conjuction with PHP and SQL.
These are only my suggestions. More seasoned, experience developers will have a much broader view than me and I'll be grateful for any input from anyone.
Looking forward to reading your posts!
Re: Flash module add-on: Let's update the Flash module for CS3
I too am doing a bit of a PHP crash-course, but I've found that once you know either PHP or AS, the other is pretty easy to pick up. Thanks for pointing out that XML is a native data type in AS3, I wasn't aware of that, very exciting!
Out of curiosity, did anyone ever figure out why Jamie Pratt's module was only compatible with version 6? I'm not suggesting we go back and try to update that module, I just wonder what made it so locked down. Don't want to go repeating the past, ya know

As for what you said about building database-free, XML driven sites, you might be interested in what a friend of mine is working on: http://m9media.com.au/forum/viewtopic.php?f=56&t=1488
Re: Flash module add-on: Let's update the Flash module for CS3
Yeah, your point about keeping the new module accessible is a very good one and critical to its success. I think the main reason that SCORM is becoming so successful is because there are so many 3rd party developers out there creating ways to make it simple and easy to use.
Also a good point about Flash versions. Most people 'should' have Flash player 9 installed on their computers. It some cases, IT departments will need a good 'nudge' to install the upgrades on their networks. The other issue, of course, is developers. Yeah, most developers are so busy with projects that it'll take them a while to catch up... and some are still working with Flash MX 2004! So whatever we put together here needs to be Flash version independent.
All versions of Flash since MX (6) can communicate with PHP quite comfortably. I was introduced to Flash at version 8 and although I've had to code for Flash 6 in the past, I couldn't say I know that much about the differences between 6 and 8. What I do know is that version 8 came packaged with more classes, cheifly 3rd party code that had proved to be very popular in the AS developer community... that sounds a bit like open source doesn't it? If you want to check out a possibile next generation set of classes, check out Papervision 3D on Google code.
Why does the FAM only work with Flash 6? Because it was written quite a while ago, using only Flash 6 code. It's incapable of processing any code since version 6. There's an interesting thing about Flash though - a newer SWF can load in and run an older one, but not vice-versa. Anyway, that's academic since I believe that since you can't any app upwardly compatible, you have to make it as easy to upgrade as possible. Since Jamie's module requires expertise in both AS and PHP, it reduces the number of people who are capable of updating it and therefore reduces its chances of being successful for any length of time. It's served its purpose well until now and it'll continue to do so for a while, but for Moodle's sake we desparately need a new version that can handle the higher demands and expectations of eLearning.
Going back to user-friendliness (very important), I think some really top-notch documentation is definitely in order too. I use Adobe Captivate quite often and it would be ideal to create some 'hold your hand and take you through it step-by-step' tutorials on how to do stuff with the new module. I'd be happy to provide that kind of support.
So far, my experience of getting teachers to use on-line content, let alone create it, hasn't been good. Perhaps you've had more positive experiences. I'd like to know what the consensus is. I think most teachers don't even create their own classroom content, they generally get it from professionally designed, produced and, more importantly, user-tested publications. I think this formula for learning content on paper and in books has worked very well for a great many years and we should strive to achieve something comparable for on-line resources ourselves.
With this in mind, I think support aimed specifically at learning resources designers would be the most productive for schools and LMS's. What do you think?
I've written a simple little code that writes the Javascript to embed a SWF file, using Geoff Searns' SWFObject. The latest version of SWFObject is included in the zipped file. Just change the PHP variables as necessary and upload it to see it work.
Here's mine: SWF Test
So calling the SWF details from a database shouldn't be a problem. That's my next experiment.
AAron Silvers is probably THE MAN to ask for the moodle side of making your updated flash mod.
Anyway, I just wanted to add that if you can get your flash "loader"running text, image and audio files specific to a quiz from an external library, you can make a zillion "10 question quizzes" in flash with the same swf file calling out to a set folder structure (q1,q2,...q10; in q1 folder/question.txt,answer.txt,image file,audio file) and just make a new quiz instance each time recycling the first swf. "flash scorm" . if the requisites of the base quiz change (you want 20 questions and four multiple choice buttons instead of three to appear on each page- for example) THEN you need to revisit your FLA, but otherwise having one "flash shell" makes you good to go for any number of quizzes...
also had lots of problems running captivate 2 and 3 scorm packs on moodle (always for grade reports) and AGREE WHOLEHEARTEDLY that a FLASHmod/FLASHSCORMmod is the way to go for EFL moodles
REALLY only started this reply to say that I your flumpnet link was giving errors, but if possible I'd love to get my paws on your latest SWFtest efforts...
thanks much! -jjones@virtualschool.it, jjonestemp@yahoo.ca
My FlashMod project has taken a new tack and I've simplified it a great deal. I've decided that it isn't really a module at all but a way of deploying a resource. I'm currently working on an extension to the resource module which works in the same way as outline in this quick tutorial for deploying Captivate in Moodle:
http://matbury.com/wiki/index.php?title=Captivate_and_Moodle_Tutorial
You might want to check out the code I have so far which makes up a working prototype of FlashMod. It isn't anywhere near finished yet:
http://matbury.com/wiki/index.php?title=Installing_FlashMod_extension_in_Moodle
You'll see that I've included plenty of flexibility of the types of user interaction data that it'll record. I think that far too many e-learning interactions follow the dump 'n' pump model of endless tests. I'd like to create something that does a lot more than that.
And yeah, it allows for dynamic, XML driven, multimedia interactions so with a relatively small number of Flash 'projectors' you can create a huge number of varied resources. You can even use it to access a media bucket server, as long as you have a cross-domain policy file on it.
BTW - Using PHP proxy files is a really dodgy way of handling Flash resources and should be avoided at all costs.
All the code's there and it's pretty rough and ready - please read the disclaimer carefully first! - I've got it working OK on my Moodle. I still have a lot of stuff to sort out before I really present it to the Moodle forums community.
Re: Flash module add-on: Let's update the Flash module for CS3
Just wondering how the projects progressing. And do you know if it will be compatible with moodle 2.0?
Thanks
Mark
Re: Flash module add-on: Let's update the Flash module for CS3
Sorry to crash in on this subject, (Mat/Jamie and co great work!!) I am new to Moodle and trying to get my head around all different flash usages with moodle. My personal interest is in building up a "moodle AMF" via AS3 & amfphp.
Click here to view "moodleAMF" post
I'm also trying to make sure all the right people are following this, to either help out or enlighten a newbie (being right or wrong) by atleast pointing me in the right direction for getting moodle AMF'd up! :P
Cheers
Marcus