It looks like it doesn't know about "play.png", do you have that?

There's a good tutorial about embedding images here:
http://www.bit-101.com/blog/?p=853

- pamela


On Thu, May 21, 2009 at 6:42 AM, Vitali <[email protected]> wrote:
>
> I have tried using Pamela's CustomIconSprite.as package
>
> but this is the error i get:
> -----
> TypeError: Error #1007: Instantiation attempted on a non-constructor.
>        at CustomIconSprite()
>        at MarkerToggleFlash_fla::MainTimeline/createMarker()
>        at MarkerToggleFlash_fla::MainTimeline/readXml()
>        at flash.events::EventDispatcher/dispatchEventFunction()
>        at flash.events::EventDispatcher/dispatchEvent()
>        at flash.net::URLLoader/onComplete()
> ----
>
>
>
> this is the code i am using
> CustomIconSprite.as
>
> ----
> /*
> * Copyright 2008 Google Inc.
> * Licensed under the Apache License, Version 2.0:
> *  http://www.apache.org/licenses/LICENSE-2.0
> */
> package {
>
> import flash.display.Sprite;
> import flash.text.TextField;
> import flash.text.TextFieldAutoSize;
>
> /**
>  * InfoWindowSprite is a sprite that contains sub sprites that
> function as tabs.
>  */
> public class CustomIconSprite extends Sprite {
>  [Embed('play.png')] private var TestImg:Class;
>
>
>  public function CustomIconSprite(label:String) {
>        addChild(new TestImg());
>
>        var radius:int = 60;
>    var labelMc:TextField = new TextField();
>    labelMc.autoSize = TextFieldAutoSize.LEFT;
>    labelMc.selectable = false;
>    labelMc.border = false;
>    labelMc.embedFonts = false;
>    labelMc.mouseEnabled = false;
>    labelMc.width = radius;
>    labelMc.height = radius;
>    labelMc.text = label;
>    labelMc.x = 9;
>    labelMc.y = 6;
>    addChild(labelMc);
>    cacheAsBitmap = true;
>  }
>
> }
>
> }
>
> -----------------
> import it into MarkerToggleFlash:
>
> import CustomIconSprite;
>
> import com.google.maps.LatLng;
> import com.google.maps.LatLngBounds;
> import com.google.maps.Map;
> import com.google.maps.MapEvent;
> import com.google.maps.MapMouseEvent;
> import com.google.maps.MapZoomEvent;
> import com.google.maps.MapType;
> import com.google.maps.services.ClientGeocoder;
> import com.google.maps.services.GeocodingEvent;
> import com.google.maps.overlays.Marker;
> import com.google.maps.overlays.MarkerOptions;
> import com.google.maps.InfoWindowOptions;
> import com.google.maps.styles.FillStyle;
> //import mx.controls.Alert;
> import com.google.maps.controls.ZoomControl;
>
>
> import com.google.maps.interfaces.IProjection;
> import com.google.maps.styles.StrokeStyle;
> import com.google.maps.overlays.PolygonOptions;
> import com.google.maps.overlays.Polygon;
> import flash.events.Event;
>
>
>
>
> var categories:Object =
> { "airport": {
>    "color": 0xFF0000,
>    "markers": []},
>  "bar": {
>    "color": 0x0000FF,
>    "markers": []}
> };
>
> var map:Map = new Map();
> map.key =
> "ABQIAAAAkqC0hQ6ptJJ39dnGRIsUXBQ1sfgIqdZmW2O7RVNpgttTmt9J7RRncv6SxIB7wCvWAj60UFqYVaKfaQ";
> map.x = 100;
> map.y = 0;
> map.setSize(new Point(stage.stageWidth-100, stage.stageHeight));
> map.addEventListener(MapEvent.MAP_READY, onMapReady);
> this.addChild(map);
>
> airportsCheckbox.addEventListener(MouseEvent.CLICK, function(e:Event)
> {
>  toggleCategory("airport");
> });
> barsCheckbox.addEventListener(MouseEvent.CLICK, function(e:Event) {
>  toggleCategory("bar");
> });
>
> function onMapReady(event:Event):void {
>  map.enableScrollWheelZoom();
>  map.enableContinuousZoom();
>  map.setCenter(new LatLng(30.751278, 104.501953), 4);
>  map.addControl(new ZoomControl());
>
>  var xmlString:URLRequest = new URLRequest("markers.xml");
>  var xmlLoader:URLLoader = new URLLoader(xmlString);
>  xmlLoader.addEventListener("complete", readXml);
> }
>
> function readXml(event:Event):void{
>  var markersXML:XML = new XML(event.target.data);
>  var markers:XMLList = markersXML..marker;
>  var markersCount:int = markers.length();
>
>  for (var i:Number = 0; i < markersCount; i++) {
>    var marker:XML = markers[i];
>    var name:String = mark...@name;
>    var address:String = mark...@address;
>        var image:String = mark...@image;
>        var description:String = mark...@description;
>        var articlelink:String = mark...@articlelink;
>    var type:String = mark...@type;
>    var latlng:LatLng = new LatLng(mark...@lat, mark...@lng);
>      createMarker(latlng, name, address, image, description,
> articlelink, type);
>    }
>        drawCircle(30.751278, 104.501953, 200.0, 0x000080, 1, 0.75, 0x0000FF,.
> 2);
> }
>
>
>
> function createMarker(latlng:LatLng, name:String, address:String,
> image:String, description:String, articlelink:String,
> type:String):void {
>
>  //original marker
>  /*
>  var markerOptions:MarkerOptions = new MarkerOptions({});
>  var fillStyle:FillStyle = new FillStyle({color: categories
> [type].color});
>  markerOptions.fillStyle = fillStyle;
>  */
>
>  // new custom marker from CustomIconSpriteDemo.mxml
>  var markerOptions:MarkerOptions = new MarkerOptions({icon: new
> CustomIconSprite("a")});
>
>
>  // continue original code
>  var marker:Marker = new Marker(latlng, markerOptions);
>  var html:String =  "<a href='http://www.google.com'
> target='_blank'>link test</a><br /><img src=\"http://maps.google.com/
> help/maps/edit/images/marker-noalpha.png\">" + image + "<br /><b>" +
> name + "</b> <br />" + description + "<br />" + address + "<br /><br /
>><a href=" + articlelink + "><b>Read More</b></a>";
>  marker.addEventListener(MapMouseEvent.CLICK, function
> (e:MapMouseEvent):void {
>    marker.openInfoWindow(new InfoWindowOptions({contentHTML:html}));
>  });
>  categories[type].markers.push(marker);
>  map.addOverlay(marker);
>  }
>
> function toggleCategory(type:String):void {
>  for (var i:Number = 0; i < categories[type].markers.length; i++) {
>    var marker:Marker = categories[type].markers[i];
>    if (!marker.visible) {
>      marker.visible = true;
>    } else {
>      marker.visible = false;
>    }
>  }
> }
>
>
> function drawCircle(lat:Number, lng:Number, radius:Number,
> strokeColor:Number, strokeWidth:Number, strokeOpacity:Number,
> fillColor:Number, fillOpacity:Number):void {
>                var d2r:Number = Math.PI/180;
>        var r2d:Number = 180/Math.PI;
>        var circleLat:Number = radius * 0.014483;  // Convert statute
> miles into degrees latitude
>        var circleLng:Number = circleLat/Math.cos(lat*d2r);
>        var circleLatLngs:Array = new Array();
>        for (var i:Number = 0; i < 33; i++) {
>                var theta:Number = Math.PI * (i/16);
>                var vertexLat:Number = lat + (circleLat * Math.sin(theta));
>                var vertexLng:Number = lng + (circleLng * Math.cos(theta));
>                var latLng:LatLng = new LatLng(vertexLat, vertexLng);
>                circleLatLngs.push(latLng);
>        }
>
>        var polygonOptions:PolygonOptions = new PolygonOptions();
>        var fillStyle:FillStyle = new FillStyle();
>        fillStyle.alpha = fillOpacity;
>        fillStyle.color = fillColor;
>        polygonOptions.fillStyle = fillStyle;
>
>        var strokeStyle:StrokeStyle = new StrokeStyle();
>        strokeStyle.alpha = strokeOpacity;
>        strokeStyle.color = strokeColor;
>        strokeStyle.thickness = strokeWidth;
>        polygonOptions.strokeStyle = strokeStyle
>
>        var polygon:Polygon = new Polygon(circleLatLngs,
> polygonOptions);
>        map.addOverlay(polygon);
>        }
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API For Flash" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-maps-api-for-flash?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to