Showing posts with label flash. Show all posts
Showing posts with label flash. Show all posts

Adobe kills Local Shared Objects

Labels: , 3 comments

Adobe recently released version 10.3 of the Flash Player. Amongst the cool new features there is a long expected one by the privacy control freaks: the clearing of local shared objects when clearing cookies in the browser. The idea is very nice, whenever the user clears their cookies, they actually want to remove all the session information the browser maintains.
When my desktop updated to FP 10.3 this morning I decided to give this new feature a spin. After googling a bit I found this demo page from Microsoft made for IE. Simply input some text in the form field, hit save and after a refresh the data is maintained. Clear the cookies, refresh the page and the text is gone.
So where's the problem ?! It seems FP doesn't care which browser was used to set that shared object, so it simply deletes ALL shared objects created by any browser. Try this:
1. Open the link above in Chrome/Firefox. Enter some text and hit refresh. The text is stored.
2. Open an IE instance.
3. Clear the cookies in IE.
4. Refresh the page in Chromme/Firefox. The information is gone.
I know there has been a lot of pressure on Adobe to implement this, but I think the way it works now makes Shared Objects very unreliable. When a user clears the cookies in a browser, they expect that only the information in that browser will be affected.

I really hope Adobe fixes this soon by making clearing local storage browser-dependent. I opened a bug here, if you agree please vote for it.


Flash in online gambling

Labels: 21 comments

I've been in the online gambling industry for a while and I noticed that it's relying more and more on the Flash Platform. The applications created by online gambling companies have large budgets and use state of the art technology. They usually have dedicated User Experience professionals who make sure the application looks and feels right to the customers. After all, the most important thing is to make the users feel good and you won't succeed that if they can not find the sounds off button.

Live betting
There isn't a sports punter in the world who can say that they don't like to bet after the event has started. Nothing compares to watching the game on TV and waiting for the price to reach your target. In this kind of applications data synchronization between the server and the client application is crucial and sometimes 1 second of delay can mean thousands of bets have to be canceled. There's no need to add that this is bad for business.


Examples:
Bodog live betting
You can choose from 3 types of bets, the application resizes vertically to show in more markets and the odds change very fast.
Bet365
The live game events is a great way to stay in touch with what's happening if you're not watching the game.

Lobby
Because online gambling companies sometimes have a lot of games the offer, there is an increasing need for lobby applications which can present the games to the user and allow him to launch them with just one click.

Examples:
Betfair Casino
Great 3D look and very good matching sounds.
Bwin Poker
Gorgeous black shiny skin, very complex and with a lot of features. It has multiple levels of filtration combining tabs, comboboxes and checkboxes.


Demos
Believe it or not some of these games are extremely complex and complicated so a demo presentation helps the user understand the rules and the gameplay. Since Flash is the de-facto standard for online animations and sounds, it made sense to use it for the demos.

Examples:
Bwin Poker Demo
Even if you haven't played poker in your lifetime after a few minutes of this demo you are good to start. It's really nice because it simulates the real game and the users get used to the rules and to the game interface.

Live dealer
I started this post promising you state of the art technology and maybe you haven't seen it until now, but keep reading. Live dealer is a new offering from the betting companies where you basically have a video conference connection with a real cards dealer. This makes you feel more like in a real casino while keeping the advantages of online gambling.

Examples:
William Hill live casino
Very easy to use and with different view points.
Games, video sharing, live video feeds, etc....
There is no need to tell you that all the web games in this industry (poker, casino, slots) are flash applications. This is mainly because Flash delivers high quality graphics and user experience while allowing for fast reliable communication with the server.
I'm not going to go into details about the games now, I can tell you there are thousands of them and from someone on the inside I can tell you they are not rigged. They are all based on random algorithms.
Tutorial videos and live video feeds started to show up more often on the gambling websites and Flash was the only way to deliver them to all the customers. Aside from this I have seen utility flash applications that are used purely for storing cross-browser cookies (SharedObject) and for communicating across domains.

The online gambling websites use the Flash platform to deliver richer experiences to their customers which in the end is crucial for their business. Now let's see them go mobile!


Feel free to add comments and links to other examples that I might have missed.

This blog post is NOT an ad for any of the products presented here and the images without a source are a simple screenshot of the products as they looked at the time of writing this article.


SharedObjects maintain references and update values of Objects

Labels: , , 3 comments

A very interesting thing I noticed a while ago is the behavior of SharedObjects when the data in them is an object as well. The idea is that when you add any Object to the data field of a SharedObject instance this is not cloned and is passed by reference. So from then on, any changes to the Object will be reflected in the SharedObject data.

If you want to prevent this behaviour it's best that you create clones of the object and asign them to the SharedObject.

Bellow I added a Flex example to prove it. The first time you run the program below, it will show the current date because there's nothing in the SO. From the second run onward it is showing the 78 Date although that change is never flushed.

1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
3. <mx:Script>
4. <![CDATA[
5. private function init():void
6. {
7. var so : SharedObject = SharedObject.getLocal("someTest");
8. //Initialize with the current date or the date in the Shared Object
9. var someDate: Date = new Date();
10. if (so.data.thedate != null) someDate = so.data.thedate as Date;
11. //show the date in the UI
12. theDate.data = someDate;
13. //put it in the shared object and force write it to disk
14. so.data.thedate = someDate;
15. so.flush();
16. //the changes done to the object are stored in the shared object
17. someDate.setFullYear(1978, 4, 2);
18. }
19. ]]>
20. </mx:Script>
21. <mx:DateField id="theDate" width="100%" height="100%" />
22. </mx:Application>
23.  
Generated by FlexWebFormater