【问题标题】:google maps in flex withiout mxml component没有mxml组件的flex中的谷歌地图
【发布时间】:2011-08-14 21:36:52
【问题描述】:

如何将谷歌地图作为类添加到 main.mxml 没有<maps:Map key="" sensor="" />

喜欢在 Flash 中

更新:

如果我有课

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);
 }
}

如果我在 mxml 中使用它

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

返回错误

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

如果我用这个

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

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

什么都没有添加

感谢

【问题讨论】:

  • 你为什么忽略错误?使用 addElement()。

标签: apache-flex flex4 maps


【解决方案1】:

MXML 是在编译时被翻译成实际实例的声明性标记。

例如:

<s:Label text="Something" /> 

和跑步一样

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

因此,在您的情况下,只需分配一个函数以在组件生命周期的某个时间点执行,并将对地图的引用保持在类级别。 (例如,我正在使用一些 VGroup 组件)

<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>

或者,您可以将 id 属性添加到 MXML,然后使用该 id 作为属性名称以编程方式引用它:

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

对于“addChild()”,请改用“addElement()” - 这是 Flex 3 到 4 之间更改的一部分。

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2011-06-12
    • 2011-02-13
    • 1970-01-01
    • 2011-08-01
    • 2010-12-23
    相关资源
    最近更新 更多