Mfieldin
Assignments Discussion Group Theater Apps Course Advertisement
Lecture Blog Design Patterns SVN Server Flex Links Student Wikis
Welcome to Matt Fielding's Spring 2009 Software Engineering page. This is where I showcase the amazing (hopefully) applications I put together in weeks worth of time. Oh, the excitement!
Flex Exploration
- Creates a simple web-based Rich Internet Application that grabs image data from Flickr and displays it.
- Yet another web-based RIA that this time sends an HTTPRequest to a script with parameters to calculate postage, and displays the results within the RIA.
- Basic setup and execution of a web-based Flex application.
- Added onto Tutorial 1 with double buffer rendering and game states.
- Added onto Tutorial 2 with embedded resources and the ability to create game objects.
- Application to spawn planes randomly that bounce of walls. Based off Game Tutorial 3.
- This was designed with the thought in mind that Flash would lag heavily given a decent amount of objects on screen reacting with wall collision. To my surprise the application is run very well on my machine and all I have seen it run on. It doesn't start to lag until the amount of planes hit multiple hundred. This is benchmarked on a 2.4Ghz Intel Core 2 Duo w/ 2GB of DDR2.
Theater Set Designer Project
Theater Project Design Document
Flash Player Security
"Adobe® Flash® Player does not allow an application to receive data from a domain other than the domain from which it was loaded, unless it has been given explicit permission. If you load your application (SWF file) from http://mydomain.com, it would not be able to load data from http://yourdomain.com. The only exception is when the server you are contacting has implemented a crossdomain.xml file, which explicitly gives Flash permission to access it. This security sandbox prevents malicious use of the capabilities of Flash Player. JavaScript uses a similar security model to prevent malicious use of JavaScript.
When you need to access data from a Flex application, you have three choices:
- Add a crossdomain.xml file to the server with the data.
- Upload your SWF file to the same server as the data service.
- Create a proxy on your server that calls the data service, and put your SWF file on the same server as the proxy.
Using crossdomain.xml
A crossdomain.xml file is an XML file that provides a way for a server to indicate that its data and documents are available to SWF files served from certain domains, or from all domains. The crossdomain.xml file must be in the web root of the server that the Flex application is contacting. For more information about configuring crossdomain.xml files, see the technote on the Macromedia website: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_14213. " (source)
Project Schedule
Week 1
Alpha
This week will be spent getting the core functionality implemented so that I don't run into any show stoppers later in the project. These features seem to be a combination of the most difficult and most important.
Feature List:
- Bucket selection.
- Uploading/Downloading to Flex.
- Deleting media from bucket.
- Object selection and placement on scene (movable, but not scalable, layered, or anything else at this point).
Week 2
Beta 1
This week will be spent refining Week 1 features and adding functionality to the objects already built. The main addition this week will be all the various GUI menus and getting them to work correctly and feel usable.
Feature List:
- Week 1 feature refinement.
- Object layering.
- Apply a set to the scene that is fixed.
- All GUI media selection menus should be working.
Week 3
Beta 2
All the features to be implemented in this week are optional. The hope is that I will be on schedule at this point, but if not I can scrap optional features and work on the important ones first. All features will be frozen at the end of this week, so anything not put in at this point is cut from the final product.
Feature List:
- Saves/Loading saves.
- Scaling
- Sound implementation
Week 4
Final
This week will be spent fixing any bugs that are present and refining all features currently implemented. By the end of this week all features should be usable and implemented how they were intended.