AHOYAHOY
AHOYAHOY

Reputation: 1847

google maps in flex withiout mxml component

How do I add google maps as Class into main.mxml withiout <maps:Map key="" sensor="" />

like in Flash

UPDATE:

and if i have class

package{
 import com.google.maps.Map;

 public function myMap extends MovieClip {
  var map:Map = new Map();
  map.setSize(new Point(300, 300));
  this.addChild(map);
 }
}

if i use this in mxml

myMap:myMap = new myMap();
addChild(myMap);

return error

addChild() is not available in this class. Instead, use addElement() or modify the skin, if you have one.

if i use this

var container:UIComponent = new UIComponent();
container.width = 300;
container.height = 300;
addChild(container);

myMap:myMap = new myMap();
container.addChild(myMap);

Nothing is not added

thanx

Upvotes: 0

Views: 238

Answers (1)

justinjmoses
justinjmoses

Reputation: 487

MXML is declarative markup that is translated into actual instances at compile time.

For example:

<s:Label text="Something" /> 

is the same as running

var label:Label = new Label();
label.text = "Something";
this.addElement(label); 

So in your case, just assign a function to execute at some point in the component lifecycle and keep the reference to the map at the class level. (I'm using some VGroup component for example)

<s:VGroup creationComplete="onCrtComplete()" ...>
   <fx:Script>
   <![CDATA[
        private var map:Map;

        private function onCrtComplete():void
        {  
            maps = new Map();

            //now you can do something with the map.
        }
   ]]>
   </fx:Script>
</s:VGroup>

Alternatively, you can add an id attribute to the MXML and then reference it programmatically using that id as the property name:

<maps:Map id="map" key="" sensor="" />

In the case of "addChild()", use "addElement()" instead - it's part of the changes between Flex 3 to 4.

Upvotes: 3

Related Questions