Conclusion


When i first started out creating this project i had no prior knowledge of actionScript 3.0 and also had lots of issues using Flash. I set out to not only to learn actionScript 3.0, but how to use Flash's interface and also learn the advantages, disadvantages and limitations of what flash could do. I not only choose to try and create a flash project but to also push myself into creating this project that had complex transactions.

I feel that I have learnt a vast amount about Flash and how it can be used. I have found what flaws that Flash has and to what extent and time it can consume. I feel very confident in coding the actionscript 3 language and would feel confident to take on another project again. I now know the easy ways and hard ways to construct a project using flash.

This project has also taught me how to make flash dynamic which i feel is very useful. With the knowledge I now could create a number of different projects which i feel would be very beneficial such as dynamic Ad banners that can be changed through a CMS. I feel that this would be a very good marketing and advertising tool for clients to use animated banners that they can change with the times. I feel that jumping into a large project for the first time has really been an advantage for me and helped me learn a lot about flash. This project has taught me not only a tecnical side but has inspired me to use flash for future projects. I can see how great flash can be for creativity on the web.

While creating this project i have learnt how to construct a large database that has table that communicate with each other. Although I feel that i have connected my database tables in hard and slower way, by using two connection instead of using joins. With knowing this now i can appreciate why using joins would be easier, faster and better to work with. I will now research this way, and use it in future projects.


Flash Design

I found working with my project very hard and time consuming. This was due to the way i constructed my application. My error was that i had MovieClips that contained code and then MovieClips within MovieClips that had code.This was very difficult because when i need to change code, it took me a while to find the movieClip. This would also be very hard for another person to work on because he/she wouldn't have a clue where the code could be.

The problem was not only due to working with the project but also the use data. My problem in some cases was that when i declared a variable it was only available in that MovieClip. This meant that i would have to retrieve the data again or pass it to the MovieClip to use it again. Also i had to import flash packages that i needed into every MovieCip. This meant my code was not only hard to find but also was the amount of code was nearly doubled. I now know the best way to construct a flash application. I will now keep all code in the same movie clip to keep it clean.


How do i feel?

I feel that my project as a whole learning experience went very well. I now feel very confident with flash and now feel that i personally have more to give to a potential employer. This has given me a better understanding and knowledge of creating a flash application. I now know how long it takes and the price it would cost to make a Flash Website.

This also has taught me more about design and getting it right. If a design is wrong, then your intended audience will not connect to a product and it will be a failure.

I now know my next steps in which i need to improve. I know how to create and use code but need to learn how to use it as a whole. Such as creating code that is safe, fast and easy to work with. i need to improve on my database interactions and connectivity and database communications. This will be what i will research and improve for future projects.

They seem to be moments when animations in my project stops. This does not completely crash my application but does look unprofessional. I need to look into why this is happening and learn more about the code and get more of an understanding.


Creativity

After doing "Message The World", I have now got a lot of idea's for other projects using flash. This has given me Lot's more of idea's and improved my creative side now i no what flash can allow you to create.

User testing

When Message The World was just about complete I had to asses if my project was clear and understandable for user interactions.

To get a good result and honest opinions I asked a selection of people unknown to me and who are the average web user. I asked both men and women from different age groups to navigate the site and try and send out a message and add a friend, amongst other activities. The groups of people are a friends rugby group, my cousins diet class and my grandmothers bingo club. the age ranged from 16 to 78 and included both males and females.

I didn't set any questions but just asked what they liked and disliked and watched how they managed ti use the website.

Feed back :

Matt Willock -  age, 22
"really liked the site found most of the website very self explanatory but at first i didn't know that i had to click the earch to search for messages, this could do with some help i think!"

Sarah May - age, 16
"I do like it but wish they was a little more to do to meet people like Facebook has poke person to get there attention. something like that would be cool!"

Lillian Asquith - age, 65
"There seems to be a lot on screen, and when its all moving on screen, I just didn't know what to press, not so good at this Internet stuff"

Kenneth Jackson - age, 68
"I didn't know that the world had buttons on it to search and i found 'These images hard to understand', (ICONS)"

Sam Carter - age, 20
"i didn't know that i had to click the earth to search for messages"



My changes
 After my user testing it clear that a lot of people didn't know the earth was click able this is the amendments i made to change this
After
    
Before




















A few users didn't realise that when the flat earth came down that the continents where also click able. To change this i made each continent glow around the edges so it was visible.

no glow on continents

after with glow


I also found that when the messages panel was on screen a few people did not know where to click. To prevent this i made everything else dim besides the panel the was on.

dimmed to allow user to focus

After my amendments the users that had problems now found it easier to understand and think my changes improved my previous problem.

My Next step

The next step would be to add the features i previously said. I would make this application be available in different languages. I would also add e feature that would have the image of the countries flag to each users profile. I feel that this would also edjucate users on other cultures and help them define different countries.

I would like to add geoLoaction to find a users location to make this project more fun. I did write some code to find the ip address and use this to determain the country.

I would like to make the piece more interactive by adding comments to each message so users can interact with each other more easily. Also to improve connectivity between users i would like to have a search function where you can search a user on there like and dislike and also the messages they post.

I would like to make a feature available to each user where they have a score bord and a world leader table. To win points you have to gain more attention with the message you send out. for example each view you get on a meassage, you gain points. the amount of comments also gives you points. There would be more ways to win and achieve points. I would then like to allow users to get badges and achievements based on there points. I feel that this would make connecting people more fun and would give users a reason to come back to the application.

Networking and Marketing

Fan Page

To get traffic and improve marketing i researched the use of Facebook Applications. This provides a “canves” page where you can chose between FBML (facebook markup language) or a simple iframe to pull from a located website. this allows you to have a fan page where you can talk about the application on the facebook wall and notify fans and users about “Message the world” New features or changes.

Information Page

This also has an information panel where you can view the amount of users that have joined and users who have liked the application. This will allow me to view the progress and make changes to how people are using this application. This also has a feature where users “FANS” can write on the wall and comment on Message The World. This will allow me to take on opinions and  allow the product to evolve and change to suite the users needs.


ADD FRIENDS

This also users to request their friends. this will show as a notification on their friends Facebook when the user accepts the request it will direct them to the application. This will prompt them to allow permissions that i have set which then allows me to perform commands such as retrieve details and information, post to there wall about application updates. The posts to users walls will also allow friends to see the application. This will divert more traffic.


request from friend

information admission
 Above shows how the request is seen and how the user has to acept information to allow the application this allows me to gather details from users.

As a starting point facebook will be a very good marketing tool and will allow me to target a wide audience which in time will spreed through friends

Language Barriers

I would of liked to have had the time to make it universal to other languages. to do this I would of had different text scripts that would contained all the words for the application in separate files for different languages. The users first point would be a screen with a map and would simply select where the language was that they spoke. This would then select the script to dynamically change all the text on the interface to there language. I feel like this would make the piece more universal and would allow every one to connect.

Safe Guards

My idea was to allow people to communicate with other people from all different backgrounds. This would allow people to learn about different cultures through adding friends and reading messages. I know that not everyone feels the way i do and someone could use this to send out evil messages and simply be mean.

Although i can never really prevent this from happening I could use safe guards on messages. To do this i tried to find every word i could think of that could be used to taunt people from different cultures and any word i felt that doesn’t belong with this application. Once i had these words I then wrote some PHP code to replace any of my chosen words with a hashed out version ####. This would then not upset any other user with its contents. When the message is shown to the user it is then hashed out locally so the contents would always be viewable to me.

I wanted to create a report button function that said “if you see to many #’s in a message then report the user”. This would then be stored in a database and count the reports of a user. I wanted then to create a statistics section where i could see a table with the users with the most reports. The i could view there message then take action. This was going to be my intention but wasn’t able to complete due to time.

Crashing

when creating anything with flash i started to try and click buttons as fast as i could to see if i could break it. this lead me to some underlining issues.

I found some small problems with the way i constructed my project. I used actionScript to connect to php the back again. This gathered the number the messages and created the movieClips to hold the data. These movieClips was then used as a source point for the scroller. The scroller works by targeting an instance name and inserting it within its body to be scrolled by the user. These was essential in flash for making lists with an unknown length.

The problem i had was that when a user, clicked on the “Messages Tab” it would run this whole process. Then if the user pressed another tab to quickly the movieClips would be added to the stage bet the scoller would no longer be there to target the source. This meant that the movieClips was stuck onscreen. I thought of a solution to solve this problem. I created a “timer” so when a user clicked the button the EventListeners was removed then a timer would start, then when finished would add the listeners back on screen. This worked for me now but i would have concern if this would grow to have thousands of users. Because the time could take longer, this is what i would like to overlook or set limitations to friends and messages to allow a better loading time.

I feel that i need to research the understanding of the loading function better and apply it throught out me application.

DATABASE

With this project i mainly focused on learning actionScript 3. I feel that their are and could be problems with the wa my code is structured. I feel that the way i have stored the relations between users has its own limitations.

I stored the the id’s of all the users friends in his/her own friends column. This means that i had to use the explode funtion to seperate the string then gathering all data for each id collected.

This method is really not the best way to do this. The reason why is that when adjustments are needed to be made, like deleting a friend for instance, this ment that a lot of commands are needed to be executed. To delete a friend i had to connect to my database, gather my added friends then explode then find the required id. this would then need deleting, then the string is appended and inserted back the whole process is then done again to the other user. 

For a large website that could have millions of users this could intime lead to slow transactions.
I read the book “PHP 5 Social Networking”(book). This used a method of having a table that had columns of id, userA, userB, accepted. This uses a more complexe way of sorting and storing data by using objected orientated code. this uses objects and pointers and a whole different way of structuring code.

I made a desition to create this project more simple and get to grips with flash and actionScript. I do know there will be long term issues with the way i coded it to work.
When i started this project the problem i worried about was the speed of the functionality. I found a problem that i did before starting this project. When i wanted to just recieve just one coloumn from a table i would use,

(“SELECT * FROM table”);
This would retrieve every piece of data from the targeted table. this would not be a problem when the table is very small but will have affect on a large table.

(“SELECT column FROM table”);

this would only gather data that is needed. “Web Database Applications”(book). Reading this book also helped me to draw a database and show how each table relates to each other. Whenever i creat a large project i wil use this method of actually drawing a database. I found this really helped in creating an actually seeing the workings of the database.

JOIN QUERIES

I found when researching on databases about join queries. join queries  is a query technique that matches rows from two or more tables based on a join condition in a WHERE clause and only output the rows that meet the condition. These queries are very usefull because they limit the amount of conections that are needed. If i need the password and firstname which are in two tables i would need to make two connections. This takes more time and if the tables become very large it will take longer then one connection.

table design
While working on this project a have been reading a database applications book called "Web Database Applications"(by Hugh E. Williamy, O'Reilly) This book showed how to create the working database visually to help see how the tabels will connect and communicate with each other. I found drawing the databse helped me see and understand the workings of my database. This helped when i needed information from tables.

Creating classes

While using the for loop I needed to use multiple objects from the library with dynamic instance names.
I found that you can create a a movieClip or button then export it as actionScrip3 Class

package as3Classes {
   
    import flash.display.MovieClip;
  
    public class yesAndNO extends MovieClip {
       
        public function yesAndNO() {
            // constructor code
        }
    }
}

when creating these classes, all imports are need to be inserted manually unlike using function straight into flash. I found that when coding a class other methods of coded are needed. I have researched and slightly understand “protected function” and other methods creating classes but i feel that i need more pratice and time to completely understand these methods and use.
I used these classes by saving them in a folder and imported them into my flash application.

import as3Classes.DeleteBtn;
var deleteOption:DeleteBtn = new DeleteBtn();
 This allowed me to use multiple instances from the library. I found that this made my project more flexible and easier to work with.

Connecting To PHP

When Connecting to external php scripts, I learned how to construct a load funtion that would request the URL location that is defined in the URLRequest() function.

var logOutVars:URLVariables = new URLVariables();
var logOutURL:URLRequest = new URLRequest(“http://www.dandesigningweb.co.uk/test.php”);//log out script amd loader
    logOutURL.method = URLRequestMethod.POST;
    logOutURL.data = logOutVars;

I learned that this reads and gathers text that is loaded on screen and the information is structured with names, separated by the and symbol &.

firstname=danny&lastname=whittaker&gender=male

I found this similar to the $_GET and $_POST method used in HTML forms. My problem was that i will be using multiple firstnames, lastnames and so on. This meant that i would need each name identify to be different because i would need to target a particular name or information.

I then research different loops to suit what i needed. I found the “FOR” loop. This loops data set on a condition that i command.

for($i = 0; $i<= $amount; $i++)
     {
    echo ‘fistname’ . $i . ‘=’ . $fname ;
     }

I first counted the rows retrieved from the request. This then sets the amount for the loop to cycle. The $i auto increments for each loop this is then added to the target name of each piece of data.

this will display like this

firstname0=dan&lastname0=whittaker
firstname1=tara&lastname1=jackson
firstname2=ben&lastname2=mell
 The i used this method in flash actionScript 3 to retrieve the data
for(var i:uint=0; i<FriendNum; i++)
     {
     NameArray[i].text  = evt.target.data[“firstname”+i];                          
     }
by using the same method i found that “i” would create each name. I also pulled the amount of rows across to create the correct amount of loops.

I then found that when i created each movieClip and added the instance to the stage they was placed on top of each other.

I then realized that if i place its Y postion, by ‘height’  X ‘$i’ it will position each movieClip on top of each other.

 mcArray[i].y = h * i;// x height by amount to stagger positions

This allowed me to use dynamic data and stagger content to create lists. I used this to display messages, friends list and so on.

Changing code


While doing this project i needed to use animation and opacity changes with my objects on screen. I wanted objects to float on and off screen.

Originally all i knew was actually physically creating an object, then moving it on stage then creating a motion tween. I found multiple problems in doing it this way. The first problem was coding the object to do tasks and its flexibility. For instance when i wanted to know when a tween animation was finished then i would have to listen for a certain frame number. The problem is that if the animation was then changed all the code that listened for that frame would need updating.This became very time consuming.

Also it would need animating on and off the stage with code stopping the animation. this again made working with the animation hard, time consuming and messy.
When tweening an object it was always difficult to give the illusion of gravity.

More control
I realized that for a project this size it would need an easier answer to animation.
I researched other methods and easier ways.  I found a classes called Tween.

var ShowLogin:Tween = new Tween(login_mc, “y”, Back.easeOut, -200, 200, 4, true);
This allowed me to to target an objects instance name, and choose Y or X direction i want the animation to move.This also allowed me to chose time the motion would last and if i wanted to use seconds or frames.

These features also came with easing conditions that flash have already have installed. These allowed me to choose from different animations such as elastic, back, bounce and strong. These was very well animated tweens and looked more professional.

What i found very useful was that you can choose the starting and ending point of the animation. This made the project easier to work with and more flexible.


Motion ends

By using tween classes i could apply a funtion that listens for an animation to end then would run another code. This allowed me to have more control over what is happening within the application.

Redesign

To recreate my design to target an adult audience instead of a younger audience i made the interface more simplistic.
new forms

To do this i decided to only keep the universe textured. I made all the logo’s and buttons white to keep it neutral. I also minimized on screen content and tried to keep it obvious what the user needs to do.

I felt that the white interface made the website look more futuristic and no longer looked like just a children’s website.
The original background was completely stars across the full screen. I faded these out so they was only concentrated in the center this also made it look less complicated.

new layout
new logo
I minized the textures and removed the colour icons and replaced them with simple designs. This kept the easy to use descriptive icons but stopped it from looking childish.

Interface Designs

The Interface design I wanted to create was going to resemble the styles of the two adverts “Little Big Planet” and “Comfort Advert”. I wanted to use icon so the user could easily see what the section did. Like show friends symbol or a messages symbol.
first icon design

first form design
second icon designs




second form designs
I fully designed the Interface using all the icons in the picture. The problem i created for my self was that throughout making this project my confidence grow. Then i realized i could add other features that would make this project and idea work a lot better.
These are my amendments
  • Users can add friends
  • private messaging 
  • profile updates
With these added features required a lot more within the project. I soon found that the design that i had originally planned for was not really suiting my project.
I found that all the different textures looked to much and made the website complicated. This also started to look to colorful. My problem her was it was staring to target a younger audience. This was a problem because i didn’t want vulnerable children having the ability to talk to and add anyone.
This made me rethink my design and target audience.

3D animation


Animating a 3D globe was going to be difficult within flash. I researched the best ways to do this and found a few solutions. Swift is a 3D software that works with flash and exports the 3D tween for flash. Using this method would not only very quick but also precise.

I found other software as well was not able to get these programs due to money. I then realized that Photoshop CS5 has its own 3D plugin that allows you to create 3D objects.
I used this to create the earth and then navigate around the globe bit by bit while saving each section. This was very time consuming but i got the result i needed.

World Idea’s

my Design


Different globe designs

World Idea’s
My initial idea was to use a 3D globe that you could navigate around and pick the location to search. I research as many designs and quirky idea’s of hoe to change the appearance of the world. I wanted to add something a little bit different in the design of the globe.
The problem with a globe that was 3D was not only my technical ability, but how easy it would be to navigate.

      “This refers to a wide range of people with varying types of physical disabilities. With regards to the web is refers largely to people with upper limb mobility, manual dexterity and co-ordination problems. This can be caused though a disability that an individual is born with or one that develops due to illness such as Multiple Sclerosis (MS), Parkinson’s or a stroke. People with a broken bone would also temporarily fall into the category”  
(http://www.rnib.org.uk/professionals/webaccessibility/background/Pages/types_of_disability.aspx.)

My first though was how people with disabilities could handle a complex. I tried it myself on Google earth and also asked a few friend’s navigate to a location. I found that all seven had some difficulty a first with direction and mouse use.

I felt that this was and could be a big hindrance to my project. My project is based on connecting anyone from anywhere with people and a website that didn’t exclude anyone.
This along with my ability in flash was the deciding factor in creating a more simple way of navigating the globe.

Insinspirational designs

 


Little Big Planet 
Little big planet is a game based on collecting stickers and objects from different planets. You can also create your own level.
This game also has the same look and feel as the “Comfort adverts”. This game has been created to look this way to resemble the art of creating something yourself.





Comfort softener
  For the look and feel i wanted a warm, fussy, handmade, personal feel. So one of the designs i looked at was the comfort softener advert where the world is cotton, cloth and wool. I got the same feeling from this advert as what i wanted my project to have.
By making the whole world out of material i feel like gives the feeling of creating something. Also by adding these textures makes this advert appeal to a wide audience.

World and Theme Design

A) Detailed Map

B) My handMade World

When doing brainstorming i came up with a few ideas about the look and feel. I wanted this to look self-made and feel personal to whoever came to the website. The hard thing is, is that this is open to everyone so giving this a feel of being personal is going to be difficult.

My first thought was when a child brings home a piece of work from school and it has been made from bits of felt and cotton balls. This gave me the idea to make the website look like its been made with materials so it doesn’t look perfect and will give off the feel of been handmade.

I also wanted this to look nice and welcoming and using these materials will give that feel.

I think that by having just a realistic world map could just be boring and even to some people look technical. To prove this i will design to type of world map to ask a number of people their opinion without telling them i made it or my opinion.
Steven mills)     
  • Q. which map do you find the most interesting?     
  • A. Map B, i think it looks really cool. I would spend mor time looking at that one if i had to.
Lauren Wilson)     
  • Q. If these to images was a board game which one would you choose.     
  • A. i would choose B, looks more fun and for some reason doesnt look gloomy like boring maps do.
By telling people i didn’t  create the image i got an honest opinion, i found that most people find maps boring and like map B because it was different and fun. This made me confident about the texture and feel that i wanted to go which is made from materials.

My Own Brief

For this project i want to learn how to use actionScript 3 and how to structure a project in flash. This will also require how to connect ActionScript 3 with external php files and to allow Mysql Storage of data and profile settings.
I will also require to learn different methods of how to store and sort data from a mysql database. This will need to display how to structure a database and how to relate tabels and id’s.
I will need to learn the best method for animation and tweening.

  • how to use actionscript 3
  • connect ActionScrpt 3 with php and make flash dynamic
  • animation and best practice
  • how to construct a flash project
  • Intergration with facebook for marketing

Brainstorming

Brain Storming

While brainstorming i came up with more ideas to keep people coming back. I felt that people will be more likely to come back to the site if they had their own profile. Then this would allow people to make connections from around the world based on what the have to say.

The Idea

The idea is to have a website where people can upload an image of themselves and add a small paragraph. Then the gallery will show random photos from around the world allowing anyone to view what people have to say.

The small paragraph is key to making this work. It wont be just any paragraph but will ask the user to choose to say the words that mean the most to them. They could be words of wisdom, a memory, a joke or something that is very dear to them.

This wall will be like a worldwide ‘I was here’ to leave a mark or to just share the words you love. The amount of messages will be limited to five at a time. this will allow people to only choose good things to say and also stop the database getting full of pointless messages.

Self Initiated Brief

The student will identify a suitable project idea/topic, formalise through appropriate documentation, and produce an online product to their own specification.