In this map:
http://www.abcnews.go.com/politics/vote2008
I solved the problem by having an outline layer that covered
all of the states. Not sure if that would work for you. The solid
color states are all sitting underneath that layer.
The adjust color filter is known as ColorMatrixFilter when
you're using it from Actionscript. It doesn't look simple to use!
For the idea of having a movieclip that is the stroke, and
another that is the fill color, try this test routine in frame 1 of
a new FLA:
var outer:Sprite = new Sprite();
var inner:Sprite = new Sprite();
var holder:Sprite = new Sprite();
outer.graphics.lineStyle(3,0,1);
outer.graphics.moveTo(0,0);
outer.graphics.lineTo(100,0);
outer.graphics.lineTo(100,100);
outer.graphics.lineTo(0,100);
outer.graphics.lineTo(0,0);
inner.graphics.beginFill(0xff,1);
inner.graphics.drawRect(0,0,100,100);
inner.graphics.endFill();
holder.x = 20;
holder.y = 20;
holder.addChild(inner);
holder.addChild(outer);
addChild(holder);
var changetimer:Timer = new Timer(100,0);
changetimer.addEventListener(TimerEvent.TIMER,randomcolor);
changetimer.start();
function randomcolor(e:TimerEvent) {
inner.graphics.beginFill(Math.random()*0xffffff,1);
inner.graphics.drawRect(0,0,100,100);
inner.graphics.endFill();
}
Now, that's obviously filling a solid rectangle. You can tint
an irregular shape using setTint. In yet another new FLA, try this
script, with an irregular shaped blob movieclip, named "mc", on the
stage already:
import fl.motion.Color;
import flash.geom.ColorTransform;
var ct:Color = new Color();
ct.setTint(0xFF0000, 0.5);
mc.transform.colorTransform = ct;