You can use the Flex API's FeatureLayer against layers in a 9.3 MapService. You won't get the server's rendering info automatically, but you may find it easier to create a renderer on the FeatureLayer then develop a new widget.
Reference:
http://help.arcgis.com/en/webapi/flex/apiref/com/esri/ags/layers/GraphicsLayer.html#renderer
See around line 414 of MapManager.mxml where it's adding a FeatureLayer to the map. FeatureLayer extends GraphicsLayer so it inherits the renderer and symbol properties. If you set either one, you'll can control the symbology of the layer and you won't get the default colors.
case "dynamic":
var dynLayer:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(url);
dynLayer.alpha = alpha;
dynLayer.id = label;
dynLayer.name = label;
dynLayer.token = token;
dynLayer.visible = visible;
if (autoRefresh > 0)
{
setInterval(dynLayer.refresh, autoRefresh * 1000);
}
if (visibleLayers)
{
var vizLayers:Array = visibleLayers.split(",");
for (var i:int = 0; i < vizLayers.length; i++)
{
vizLayers = Number(vizLayers); // convert to Numbers
}
dynLayer.visibleLayers = new ArrayCollection(vizLayers);
}
if (proxyEnabled)
{
dynLayer.proxyURL = configData.proxy.url;
}
if (operationalLayer)
{
layerObject.layer = dynLayer;
}
map.addLayer(dynLayer);
break;
<layer label="Test" type="feature" visible="true" alpha="1" info="widgets/InfoTemplates/SimpleInfoWinWidget.swf" infoconfig="widgets/InfoTemplates/test.xml" url="http://test.gov/ArcGIS/rest/services/VulnComm/Alltest/MapServer/0"/>
You want to change the FeatureLayer, so see the case "feature": section and then add something like this: featureLayer.symbol = new PictureMarkerSymbol();
Reference:
http://help.arcgis.com/en/webapi/flex/apiref/com/esri/ags/symbols/PictureMarkerSymbol.html