0

我正在读取 XML 并将值附加到两个单独的影片剪辑中的对象。像这样

Map01:
Marker01.name = hello there
Marker01.short = hel
Marker01.value = 12

Map02:
Marker02.name = hello there
Marker02.short = hel
Marker02.value = 99

现在我点击 Map01 中的 Marker01 并获取它的名称和值。我想将它的值与 Map02 中的 Marker01 的值进行比较,使用名称,或者更好的是 .short,因为名称很长并且使用特殊字符/空格。我该怎么做呢?我几乎尝试了所有看起来合乎逻辑的事情!


编辑:用于澄清的示例代码

var marker01:mc_marker = new mc_marker();
marker01.name="hello there";
marker01.short="abc";
marker01.val="99";
marker01.x=10;
marker01.y=10;
this.mc_map01.addChild(marker01);

var marker02:mc_marker = new mc_marker();
marker02.name="hello there";
marker02.short="abc";
marker02.val="20";
marker02.x=10;
marker02.y=10;
this.mc_map02.addChild(marker02);

marker01.addEventListener(MouseEvent.MOUSE_UP, showMarkerInfo);
marker02.addEventListener(MouseEvent.MOUSE_UP, showMarkerInfo);

function showMarkerInfo(event:MouseEvent):void {
    txt_ms.text=event.target.short;
    txt_mv.text=event.target.val;
    if (event.target.short==mc_map02.marker02.short){
        txt_mvi.text="here should be the marker02 value";
    }
}
4

1 回答 1

0

你那里有一个错字。Map02 使用 Marker1 的东西。如果它是 Stackoverflow 中的错字,

this.getChildByName("Marker01") 将返回给你的movieclip,购买它的名字。不过要小心,因为它搜索的是“名称”。当您应该将 Marker01 作为名称时,您使用了“hello there”。我建议您放置一个名为“数据”的属性并将 xml 信息放入其中,以免发生冲突。

最后你有: if( this.getChildByName( "Marker01" ).data.value == this.getChildByName( "Marker02" ).data.value )。

我认为这是因为您在运行时生成 Marker0X 并且您不能声明一些变量并直接使用它们。

如果您将“数据”作为自定义类的实例,您可以在其中比较两个“数据”,则布朗尼点。如果您需要更多帮助,请添加评论^_^

于 2013-06-03T11:50:16.863 回答