Weiser & Associates Web Site
Thursday, January 31st, 2008Just launched WeiserLaw.com. Check it out.Â
Just launched WeiserLaw.com. Check it out.Â
That’s my message to game publishers out there. Okay, it’s not my message, but I definitely agree with it. My friend Amit Pitaru recently had an MIT Press article published on accessibility and game design. It’s a fascinating read, and really makes you ask why the industry has neglected establishing some sort of standard. Sadly, I doubt making more money will serve as a catalyst for supporting accessibility. Rather,  I could only foresee a governing organization enforce ADA compliance.
I’m excited to be involved in Thing-a-day 2. It’s like the anti-lent for artists where you agree to dedicate 30+ minutes each day in Feburary on being creative–and then posting your art onto a site.Talk about motivation. Join me and sign up before 1/31!
My best friend just happened to move about 2 miles away from the Schulz Museum in Santa Rosa, and while I’m not a big fan of the rather depressing Charlie Brown, I’ve always liked Snoopy, so I stopped in.There was a tribute exhibit to Schulz that contained the art several other sequential art artists–I was rather surprised at how many of them still use traditional pen and pencil to create their strips (their original art was displayed). After reading Scott McCloud’s Making Comics and using a Cintiq firsthand, I just see too much convenience in drawing digitally.The mural, BTW, is Yoshiteru ÅŒtani. The guy apparently really likes Peanuts
Napa is definitely wine country gone Hollywood. I’ve paid for tastings in France, but I guess I got accustomed to the free, “thanks for stopping in” hospitality of upstate NY’s Fingerlakes. No such thing here, although we found they sometimes waive the fee when you buy some bottles (and everyone was exceptionally friendly… maybe I’ve been in NYC too long).
We hit some of the major players–Chandon, Cakebread, and Sterling–and settled for some grub at Press. We followed that up with a trip through Sonoma where we discovered the quaint town of Healdsburg and hit Willi’s.
I don’t really remember taking this photo, but it’s emerged as my favorite from Muir Woods. I took a few RAW format shots but often find the detail (and the accompanying file size) devours my hard drive space. This gets especially bad when meter/take multiple shots and I have the hard time of choosing which photo to keep.
I figure I ought to dedicate a few posts to my recent trip to the San Francisco bay area. My wife and I took some time off and spent most of last weekend there. What I learned:
Here’s the link on a presentation I gave last night on Actionscript 2.0 to 3.0 migration at FlashCodersNY. There are so many great resources out there on the topic already…I decided to take a different route and provide simple FLA examples to help people get started. Hope it helps someone out. Â
Following the iPhone update I tried the new WebClip feature for the homepage and was pleasantly surprised at how Google’s icon didn’t look like a screen capture–but instead was a nicely-cropped logo (surprisingly, Apple.com doesn’t have its own WebClip icon as of this writing).
I’m not all about proprietary standards, but, naturally, I had to figure out how to do it for my own sites.
Basically, you create a 57×57 PNG file and host it on the top level of your domain. In the <head> of your HTML page(s), add a link (similar to a custom favicon):
<link rel=”apple-touch-icon” href=”/customicon.png”/>
You can get the full details at Apple’s developer site.
I finally found some free time at the beginning of the month to work with the AS3 Go Tween platform. It’s still in its infancy, but I hope to continue to build/contribute to it. Donovan Adams already has started an object syntax Go Tween class, but I could imagine a filter class, volume class, physics class, etc.
So, why am I still fiddling with this instead of using the perfectly satisfactory Tweener or TweenLite, you ask? Check the benchmarks.
Honestly, it’s not just the benchmarks, it’s the philosophy this project provides. Oh, and it also has built-in sequencing, something I’ve really missed from my AS2 + Fuse days.
Anyway, here’s a simple colorTransform tween class I quickly threw together. Hopefully, someone’ll find this and integrate it into something better…
/**
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package com.hauckinteractive.tween {
import flash.display.DisplayObject;
import org.goasap.items.LinearGo;
import flash.geom.ColorTransform;
/**
* Simple Tween class that changes the tint of a DisplayObject.
* @author Rich Hauck
* @version 2008-01-07
*/
public class ColorTransformTween extends LinearGo{
protected var _target : DisplayObject;
protected var _targetTint : Number;
protected var _startColor:ColorTransform;
protected var _endColor:ColorTransform;
/**
* Constructor.
* @param target DisplayObject
* @param tint Hexidecimal value (0xFFFFFF)
* @param delay Delay in seconds before performing tween
* @param duration Number of seconds for animation to play
* @param easing type of easing
* */
public function ColorTransformTween(target:DisplayObject = null, tint:Number=NaN, delay:Number = NaN, duration:Number = NaN, easing:Function = null){
super(delay, duration, easing);
_target = target;
_targetTint = tint;
}
/**
* Instantiates and auto-starts class.
* */
public static function go(target:DisplayObject = null, tint:Number=NaN, delay:Number = NaN, duration:Number = NaN, easing:Function = null):void {
var ctTween:ColorTransformTween = new ColorTransformTween(target, tint, duration, delay, easing);
ctTween.start();
}
/**
* Begins tween.
* @return Boolean true if _target is defined.
* */
override public function start():Boolean{
if (!_target){
return false;
}
_startColor = _target.transform.colorTransform;
_endColor = new ColorTransform();
if(!isNaN(_targetTint)){
_endColor.color = _targetTint;
}
return (super.start());
}
/**
* Loop performing tween.
*
* */
override protected function onUpdate(type:String) : void {
_target.transform.colorTransform = interpolateColor(_startColor, _endColor, _position);
}
/**
* Mixes between starting colorTransform and target ending colorTransform.
* @param start current colorTransform of DisplayObject
* @param end target colorTransform of DisplayObject
* @param t incrementing value from 0 to 1
* @ return ColorTransform instance.
* */
private function interpolateColor(start:ColorTransform, end:ColorTransform, t:Number):ColorTransform {
var result:ColorTransform = new ColorTransform();
result.redMultiplier = start.redMultiplier + (end.redMultiplier - start.redMultiplier)*t;
result.greenMultiplier = start.greenMultiplier + (end.greenMultiplier - start.greenMultiplier)*t;
result.blueMultiplier = start.blueMultiplier + (end.blueMultiplier - start.blueMultiplier)*t;
result.alphaMultiplier = start.alphaMultiplier + (end.alphaMultiplier - start.alphaMultiplier)*t;
result.redOffset = start.redOffset + (end.redOffset - start.redOffset)*t;
result.greenOffset = start.greenOffset + (end.greenOffset - start.greenOffset)*t;
result.blueOffset = start.blueOffset + (end.blueOffset - start.blueOffset)*t;
result.alphaOffset = start.alphaOffset + (end.alphaOffset - start.alphaOffset)*t;
return result;
}
}
}
Bad Behavior has blocked 349 access attempts in the last 7 days.