XML ファイルを含む Flash マップを使用しています。XSLT を使用して、XML からマップの Web ページ (フラッシュ マップの外側) にリストを作成しました。マップと対話する XML から (入力された) 要素を選択する XSL を介して、これに JS 関数を追加したいと考えています。
たとえば、私のリストは 50 州です。XML の一部を次に示します。
<attributes>
<col name="State">Kentucky</col>
<STATENAME>Kentucky</STATENAME>
</attributes>
その他... 50州すべてが上記のXMLに含まれています
リストにデータを入力する方法は次のとおりです。
<table border="0">
<tr bgcolor="#9acd32">
<th>State</th>
</tr>
<xsl:for-each select="map/layer/feature/attributes">
<xsl:sort select="STATENAME"/>
<tr>
<td><a onMouseOver='highlight()' onMouseOut='highlight_clear()'><xsl:attribute name="href">http://mysite.com/<xsl:value-of select="STATENAME"/>.html</xsl:attribute><xsl:value-of select="STATENAME" /></a></td>
</tr>
</xsl:for-each>
</table>
50 の州すべてがこのように表示され、それぞれのページへのリンクが表示されます: http://mysite.com/statename.html
Javascript は次のとおりです。
function highlight() {
theMap.features('State="Kentucky"').highlight({visible: true, fillColor: "#FFFF00", fillAlpha: 1.0});
}
ここでのキーは('State="Kentucky"')です。50 の異なる関数 (州ごとに 1 つずつ) を記述することなく、State をリストに取り込まれた同じ州に = しようとしています。たとえば、50 州すべてが入力されている場合、マウスがテキサスに移動すると、自動的に theMap.features('State="Texas"') が表示され、ネブラスカに移動すると、ネブラスカが表示されます。
私はこれをやってみました:
function highlight() {
var sn='<xsl:value-of select="STATENAME"/>';
theMap.features('State="sn"').highlight({visible: true, fillColor: "#FFFF00", fillAlpha: 1.0}); }
しかし、うまくいきませんでしたし、うまくいくとは思いませんでした。しかし、それは本質的に私が何をしたいのかという考えです.
アイデア?