(Aside: I went back to the page to double-check CPU usage, and the button wasn't working this time. Yup, behold the awesome power of flash!)
That is, until people rose to his challenge. :(
Every time you use Flash, you're insulting the dignity of the elderly, the disabled and any number of others. You're saying to users "if you're not a healthy young person on a modern computer with a fast connection, you're a second-class citizen". We shouldn't tolerate it, and in many countries the law doesn't allow us to.
HTML works because it works for everyone, not just a fortunate few. This isn't about technology, it's a civil rights issue. No matter how hard Adobe try, Flash accessibility is massively inferior to HTML accessibility. They should be ashamed that they took so long to even begin to address the needs of disabled users and developers using their products should be ashamed for not using the open, standards-compliant, accessible alternative.
I'll leave it to someone else to implement. I've got real applications to build today...
While this might be a bad example it would be worth wile to have a list of what flash can do that HTML5 can not yet. The we can talk about if it is or is not worth implementing.
If he goes to http://www.chromeexperiments.com/, he'll realize that all this is doable.
Safari and Chrome.
… Webkit-based browsers do allow you to use a element in the CSS background property. Just give the canvas an id, then use "body { background:url(#mycanvas); }" in your CSS.
Sure, that isn't in the HTML5 standard per se, but since there is no HTML5 standard we can pretend it is.
steveklabnik points out in this thread an example of someone doing it, http://mobdb.com/reddit/button.html , but they use absolute positioning to overlay the button and canvas and will surely go mad if they try to use it for real.
I suppose, with this newfound CSS knowledge I will now have to change my home page background to a hilbert curve.
Edit: Actually, I think I'll use the "background: -webkit-canvas(name)" and getCSSCanvasContext() DOM function documented at http://webkit.org/blog/176/css-canvas-drawing/
Upshot: No hilbert for me. Takes about 1 second to render a maximally detailed hilbert in my browser on a core i7 processor.
Why?
That's my first question. Why? As in why do I need this button? As in why do I have to do this in HTML 5?
HTML 5 doesn't have to replace Flash. Flash may be great for some devices, and the computers of today can do Flash.
Why does this argument always end up with "But I can do this wildly unnecessary thing in Flash! I should be able to make something unequally unnecessary in HTML 5".
Perhaps HTML 5 can't do the unnecessary. Perhaps that's all the more reason to go to HTML 5.
Simplicity is the ultimate sophistication. - Leonardo da Vinci
I still dont see the need to justify your purchase/platform/technology. build things that your consumers like, use VB script, Cobol, or powerbuilder for all I care- just make it cool.
If you need a button like that (gaming website is about the only thing I can think of), chances are your audience probably has Flash.
My personal opinion however is Flash is not the right tool for the particular job of creating navigation.