Google Maps Flash API自定义内容问题

时间:2010-10-31 00:30:54

标签: flex flash google-maps

我正在创建一个小地图应用程序,在那里您可以获得有关大学不同校园的信息,视频和图像。

我正在使用customContent方法将视频播放器对象插入到infoWindow中,但是当我这样做时,它会删除我的文本内容并成为用户唯一可见的东西。

我如何解决这个问题,并在infoWindow中同时包含文字和视频?

Demo link

public function createMarker(latlng:LatLng, name:String, address:String, video:String):Marker
        {
            var marker:Marker=new Marker(latlng);

            marker.addEventListener(MapMouseEvent.CLICK, function(e:MapMouseEvent):void
            {
                //marker.openInfoWindow(new InfoWindowOptions({contentHTML:html + moulVid}));
                var infoWindow:InfoWindowOptions = new InfoWindowOptions();

                infoWindow.title = name;
                var videoPlayer:VideoPlayer = new VideoPlayer();
                videoPlayer.source = '../assets/video/' + video.toLocaleLowerCase();
                videoPlayer.autoPlay = false;
                videoPlayer.alpha = 0.8;

                titleFormat = new TextFormat();
                titleFormat.font = "Arial";
                titleFormat.size = 14;
                titleFormat.bold = true;

                contentFormat = new TextFormat();
                contentFormat.font = "Arial";
                contentFormat.size = 12;

                infoWindow.drawDefaultFrame = true;
                infoWindow.titleFormat = titleFormat;

                if (video != "") {
                    infoWindow.customContent = videoPlayer;
                    infoWindow.height = 300;
                }

                infoWindow.width = 380;

                infoWindow.content = address;
                infoWindow.contentFormat = contentFormat;

                infoWindow.padding = 10;

                marker.openInfoWindow(infoWindow);
            });

1 个答案:

答案 0 :(得分:2)

您需要创建一个新对象,称为VideoAndTextInfoWindow,使其扩展DisplayObject。现在在该组件的构造函数中创建并添加一个VideoPlayer和一个TextField。该组件可能只是公开公开videoSource和text属性。为这些属性创建setter,以便它们在VideoPlayer和TextField实例上设置正确的属性。现在将infoWindow.customContent设置为VideoAndTextInfoWindow组件的新实例。