Saturday, February 21, 2009

Flash Corporate Websites are Dead… (I wish someone had told me)

Xiik interactive recently wrote a post titled: Flash Corporate Websites are Dead...Oh...and Intros Too.

Being a Flash developer, this obviously peaked my interest. I started to respond on his blog, but realized I was writing a page worth of information and therefor am placing it here and just leaving a track back.

Please read their article before you view my response.

These are obviously my own views and do not represent anyone I may be affiliated with. Also, I write this document out of friendly debate and have nothing against it's writer or their company.

Flash Corporate Websites are Dead? I disagree. As a Flash Developer my views may be somewhat biased, but at the same time, as a Flash Developer my views are informed.

I agree that Flash is not meant for everyone. I will also agree that Intros are mostly a thing of the past. However, that is about the extent of what I will agree to.

Your first compliant is in regards to FortyFiveIndy.com. You state that Flash cannot be viewed on Mobile devices. That is false, it can be viewed on mobile devices. Adobe produces Flash Lite which is supported by Verizon, Nokia, Sony Ericsson, and LG... to name just a few. The problem here actually lies with Apple. They are pulling a Bill Gates and are not allowing Flash onto their iPhones in order to maintain their iPhone Application monopoly. Steve Jobs can't control Flash like he can iPhone apps and therefore he is doing what he can to not allow Flash on the iPhone even though Adobe has made a compatible player. That is an interesting side debate, but the point here is that only iPhone users can't view Flash... not Mobile users in general as you suggested. It may seem like the iPhone is the only mobile device since it is the current buzz word and receives all the attention from the media, but in reality it only represents 1.1 percent of the Market share. Hardly enough to make a big deal about Flash not working on someone's mobile site. Granted, the developers should have included a brief non-flash page just for usability purposed to handle that 1 percent.

Second up... you say many Flash sites are annoying. I'll give you that. But I will also say that many non-Flash sites are annoying. You can't blame Flash or Adobe for there being bad developers out there. Just because some designers and developers don't know how to properly use an interactive medium does not mean that all designers and developers do not. You can't through out the entire medium based on someone else's poor execution... That is just faulty logic.

Take Nike for example. It is Flash through and through. You have a mix of motion, video, interactive pieces, entertaining experiences, flexible shopping, etc, etc... You can not pull off a site like this with standard HTML. Compare Nike.com to something like Procter and Gamble. Which site can you find things easier on? Which site do you want to stay longer on? Which site do you get a more positive experience out of? After spending some time on Nike, can you honestly say that Flash corporate sites are dead?

I would argue the opposite. Flash is on the rise, even in the corporate world. It is placed firmly at the breaking point of a multimedia evolution. Bandwidth has become far less of an issue. Flash has 99 percent global penetration. Flash now supports 3D. It supports High Def video. It supports mobile (don't worry, Mac will see the light). Therefore, as TV and the internet merges (which is clearly happening), who is going to facilitate this evolution? Flash is far from dead. Flash Corporate Websites are far from dead. In fact, these trends would suggest that they will increase.

Friday, February 20, 2009

Flash Indianapolis - February Meeting Recap

We had 16 people show up to the user's group this month, which I think was a success (especially considering the short notice). We had mostly people in the industry: Brandwidth, Techcom, eTapestry, O2ed, Freelance, the Basement, Simulex, and Dean Johnson... hopefully I did not miss anyone. We also had a couple professors from IUPUI and one student (turns out it was SIGGRAPH's Portfolio night... so that hurt student numbers a bit). I think we had around 5 or 6 designers and the rest were mainly developers.

After introductions I gave a brief overview of where I see the group headed. In summary, I want it to be an all encompassing Flash group in that it covers design as well as development. It covers all platforms and all outlets. It is community owned, which means the community will steer what topics are covered, who covers them, and where events are held. I would like it to be a traveling organization so that it does not become owned by any particular company or school. If we keep that mentality it should become a great place to meet like minded people, network, learn, experience new things, have fun, and raise the bar of quality work coming out of Indianapolis.

A big part of getting the community to steer the organization is by becoming active on the Ning site which is our online presence. At a minimum it will be the place to go to check out upcoming meeting topics and RSVP. But it has the potential of being a great tool to get people to steer where they want the organization to head, what topics should be covered, and what speakers should be invited. It should also be a great way to stay involved with the flash community in between meetings by networking, answering/asking questions, critiquing work/recent projects, collaborating on projects, and posting jobs.

After the overview we dove into the SurfTheCrowds game. We discussed some general development topics and answered questions. It was great to have Brian, Stan, Amy, and Spence all there as well to chime in with their knowledge. I then briefly dove into how we went about optimizing the game to get the frame rate up. One of the methods we used was Blitting and Double Buffering. I whipped up 2 examples to show the difference in frames per second between using movieclips and using blitting (just type a number of sprites to display in the text box and hit enter):
Blitting
NonBlitting

From there we opened it up to discussion and questions. There was a lot of talent in the room. I was very impressed by everyone's knowledge and look forward to hearing their future contributions.

We ended by headed next door to Taylor's pub. I think the discussions at the pub were just as rewarding as the event itself. I highly recommend people try to plan to stay after and mingle. It was a great time.

Next month will be even brighter. We'll plan on having the doors open March 19th at 6pm and the meeting will start at 6:30. It will tentatively be scheduled to be at the Basement, but depending on the topic and speaker the location may change. We will formalize it by the end of the week.

Saturday, February 14, 2009

Scroll Panel Component (AS3 - Scroll Bar)

Its always a goal of mine to try to write code as re-usable as possible during each project. The extra time and thought put into the current project should make the next one that much easier. With the recent Precise Path project I was able to come away with a few different components. The main one, at least the one that is most applicable, is a Scroll Panel component. Basically you will just need to make a ScrollBar (which is just a movieclip for the track and one for the handle), a displayObject for the mask, and a displayObject that will contain the content to be masked. I took some time this morning to throw together a quick and dirty example which you can find here.

As you can see, clicking on the 3 different buttons at the top will drop in different text into the main text box. If the text is too small and doesn't need to be scrolled then the scroll bar will disappear. Otherwise, the scroll bar will check the height of the content and compare it to the mask and scroll the text accordingly. It does not have to be text... it can be any displayObject, this is just a simple example I came up with. You can find some more complicated examples in the Precise Path project.

I haven't given away any code since July.... doh! So I am long overdue. Check out the example zip file if you would like to use the component. It contains the appropriate classes and FLA example.

Feel free to use the component in any commercial project and what not. I apologize for any bugs that may be buried in it... I've only used it in one project so far so it is far from fully tested. But that is what you get for free :)

If you make any improvements on it, feel free to post below.

Monday, February 9, 2009

Flash Indianapolis - February Meeting

Flash Indianapolis is Officially starting up. Please check out the info below in regards to the first meeting and group overview:
---------------------------------------------------
Flash Indianapolis is a Flash Platform Users group intended for Flash users of all levels and interests.  Everyone in the Flash community is encouraged to attend: from designers to developers, students to experts, game enthusiasts to application developers.  We hope to span the entire Flash Platform, giving members a place to explore new areas of Flash as well as bring together talent w/ different specialties.  By doing so, we hope to bring together the Flash community in the Central Indiana area and provide a unique place to learn, network, and have fun.

The ultimate goal is to have the community run and direct the group.  We would like to see the meetings cover topics chosen by the group and be held in venues all across the Central Indiana area.   With that said, we plan on using the Ning platform to keep everyone up to date and involved.  To get the discussion started, please join our free social network:
http://flashindianapolis.ning.com/
We plan on having our meetings on the 3rd Thursday of every month at 6pm.  The venue will change depending on the speaker and topic.  We would like this to be a traveling group so that it is truly owned by the entire community.

The first official meeting will be February 19th at The Basement Design & Motion's studio (address below). Our first speaker will be Mark Grossnickle (http://blog.ickydime.com), Lead Flash Developer at The Basement.  He will be talking about the development of the Surf The Crowds flash game (http://www.surfthecrowds.com/).  We will then open the floor and discuss what everyone would like to get out of this user's group and what direction it should take.

Address:
The Basement Design and Motion
8902 Otis Avenue
Suite 107B
Indianapolis, IN 46216


----------------------------------------------------

Thanks, and hope to see you there.

Friday, February 6, 2009

Robotic Lawn Mowers are Taking over the World (Flash 10)

Maybe they are not taking over the world... I may have made that part up. But we did just finish a Flash 10 site that involves Robotic Lawn Mowers. The company is called Precise Path, its another startup backed by Scott Jones (inventor of the Voice Mail and creator of Cha Cha).

The Basement team handled the design and development of the site, the 3D models/motion, and all compiled videos... so basically everything you see. I'm very proud of everyone involved, it was a very enjoyable project. Granted I didn't sleep much ;), but being able to work on a Flash 10 site with some kick ass designers for a cutting edge product/client was very rewarding.

It was one of those sites that I just hated to quit working on. Had the timeline and budget allowed for it, we could have worked for weeks. Adding more bling bling and functionality to the site. But as Rands recent blog post says, sometimes you need to define when we are done.

With that being said, please check out the site and let me know how you would improve on it if you had more time and money.

Wednesday, February 4, 2009

Stopping FLVPlayback's Progressive Download

Ran across a pesky problem in one of the websites I have been burning the midnight oil on. Basically the site has 6 main pages, one of which contains a video gallery. Everything was working just fine and dandy. Then we decided to add a "trailer" on the homepage to welcome users to the site. This page also worked fine and dandy... until I clicked on the video gallery. The addition of this trailer on the homepage prevented the movies in the gallery from playing for a few minutes. Damn it.

Is the movie still playing after you leave the home page? Maybe the gallery is not playing until the trailer is finished. I went back and triple ensured the trailer was stopped on page exit... it did not help, there was still a delay. ugh.

Well maybe the trailer is still loading even though it is stopped since it is a progressive download. That makes sense, and the time it takes to load is about the time these videos are waiting to play in the movie gallery. This makes more sense to me... Flash should be able to play two videos at once anyways. Not sure what I was thinking above.

Ok, no biggie. I will just remove the flv from the stage and set it to null and let the garbage handler take it... NOPE, not so easy. That probably wasn't the best idea in hind sight since the garbage handler only runs when it feels like it. Plus, since the video is still loading there could be a reference somewhere keeping it from being collected.

Hmmm. Lets crack open the API. flvPlayBack.closeVideoPlayer(activeVideoPlayerIndex). Perfect! That should do the trick..... NOPE AGAIN. Had I read the fine print I would have realized that this only works when you have multiple videos in the flvPlayback. You can't close the default index, it will throw an error (which it did). Well crap.

With some digging, however, you can close the VideoPlayer if you have direct access to it. In order to gain access you need to call: flvPlayback.getVideoPlayer(activeVideoPlayerIndex). Once you have the videoPlayer you can call videoPlayer.close(). Viola! The stream is closed and the video gallery can start immediately upon opening. Perfecto!

One thing to note: Check the Flv's source to make sure it is not an empty string before you get the video player. If the flv's source has not been set then getVideoPlayer() will throw an error.

Hopefully someone finds this helpful and saves them time. Sorry for the long-windedness of the article... I could have explained the solution in one paragraph but I tend to learn better through mistakes (as you can see). Hopefully including the logic, or lack of logic, is a good learning tool.