javascript、flash 和 MAPublisher 层切换问题

发布于 2024-07-19 03:18:41 字数 3480 浏览 8 评论 0原文

问候。

我正在与 Avenza Mapublisher(Adobe Illustrator 的扩展)合作创建一个交互式地图

导出地图时,它会创建一系列 flash swf 文件、一个 html 文件和一些 JavaScript 代码。 上面的链接显示的是未格式化的版本。 正如您所看到的,地图加载速度非常慢,因为默认情况下所有图层都会在加载时打开。 我已经尝试了所有方法,但无法弄清楚如何控制加载地图时显示哪些图层。 我真正想要的只是学校、城镇和道路图层在加载时处于活动状态,其余的则关闭。 理想情况下,我希望剩余的农药层位于下拉菜单中,这样只能选择一层。

我尝试将checked =“true”设置为“false”,完全消除了选中状态,并且复选框出现选中,但该图层仍然处于活动状态。 我认为必须将某些内容写入我无法控制的 swf 文件中。 有没有人使用过这个程序。 如果您有兴趣,可以在线免费试用 2 周。

所以 html 文件调用

<script src="layerCheckboxes.js" language="javaScript"></script>

,这个文件基本上是一个包含所有选择的变量。

var checkboxes = ' \
<input type="checkbox" checked="true" value="Tulare Schools" onClick="swfLayerToggle(value, checked);" />Tulare Schools \
<input type="checkbox" checked="true" value="Towns" onClick="swfLayerToggle(value, checked);" />Towns \
<input type="checkbox" checked="true" value="Major Roads" onClick="swfLayerToggle(value, checked);" />Major Roads \
<input type="checkbox" checked="true" value="County Roads" onClick="swfLayerToggle(value, checked);" />County Roads \
<input type="checkbox" checked="true" value="1_3 Dichloropropene" onClick="swfLayerToggle(value, checked);" />1_3 Dichloropropene \
<input type="checkbox" checked="true" value="Aluminum Phosphide" onClick="swfLayerToggle(value, checked);" />Aluminum Phosphide \
<input type="checkbox" checked="true" value="Chloropicrin" onClick="swfLayerToggle(value, checked);" />Chloropicrin \
<input type="checkbox" checked="true" value="Chlorpyrifos" onClick="swfLayerToggle(value, checked);" />Chlorpyrifos \
<input type="checkbox" checked="true" value="Diazinon" onClick="swfLayerToggle(value, checked);" />Diazinon \
<input type="checkbox" checked="true" value="Fumigants" onClick="swfLayerToggle(value, checked);" />Fumigants \
<input type="checkbox" checked="true" value="Metam Sodium" onClick="swfLayerToggle(value, checked);" />Metam Sodium \
<input type="checkbox" checked="true" value="Methyl Bromide" onClick="swfLayerToggle(value, checked);" />Methyl Bromide \
<input type="checkbox" checked="true" value="Sodium Tetrathiocarbonate" onClick="swfLayerToggle(value, checked);" />Sodium Tetrathiocarbonate \
<input type="checkbox" checked="true" value="Acres Treated" onClick="swfLayerToggle(value, checked);" />Acres Treated \
<input type="checkbox" checked="true" value="Application Rate" onClick="swfLayerToggle(value, checked);" />Application Rate \
<input type="checkbox" checked="true" value="Pesticide Use" onClick="swfLayerToggle(value, checked);" />Pesticide Use \
<input type="checkbox" checked="true" value="Agriculture Use" onClick="swfLayerToggle(value, checked);" />Agriculture Use'

document.write('<form>' + checkboxes + '</form>');

函数 swfLayerToggle() 位于名为 checkboxFuntions.js 的文件中

function getMyApp(appName) {                
    if (navigator.appName.indexOf ("Microsoft") !=-1) { 
        return window[appName];             
    } else {                        
        return document[appName];           
    }                           
}                           

function swfLayerToggle(layer, isOn) {          
    getMyApp("MAPublisherSWF").swfLayerToggle(layer, isOn); 
}

Greetings.

I'm working with Avenza Mapublisher (an extension for Adobe Illustrator) to create an interactive map.

When exporting the map it creates a series of flash swf files, an html file, and some javascript code. The above link shows the non-formatted version. As you can see the map loads very slowly because by default all the layers are toggled on upon load. I've tried everything but can't figure out how to control which layers are shown when the map is loaded. Really all I want is the Schools, Towns, and a road layer to be active on load, and the rest to be toggled off. Ideally I would like the remaining pesticide layers to be in a pull-down menu so only one can be chosen.

I tried setting the checked="true" to "false", eliminated the checked altogether and the checkbox comes up not checked but the layer is still active. I'm thinking something must be written into the swf file that I have NO control over. Has anyone worked with this program at all. There is a free 2 week trial online if you're interested.

So the html file calls

<script src="layerCheckboxes.js" language="javaScript"></script>

and this file is bascially a variable with all the selection choices.

var checkboxes = ' \
<input type="checkbox" checked="true" value="Tulare Schools" onClick="swfLayerToggle(value, checked);" />Tulare Schools \
<input type="checkbox" checked="true" value="Towns" onClick="swfLayerToggle(value, checked);" />Towns \
<input type="checkbox" checked="true" value="Major Roads" onClick="swfLayerToggle(value, checked);" />Major Roads \
<input type="checkbox" checked="true" value="County Roads" onClick="swfLayerToggle(value, checked);" />County Roads \
<input type="checkbox" checked="true" value="1_3 Dichloropropene" onClick="swfLayerToggle(value, checked);" />1_3 Dichloropropene \
<input type="checkbox" checked="true" value="Aluminum Phosphide" onClick="swfLayerToggle(value, checked);" />Aluminum Phosphide \
<input type="checkbox" checked="true" value="Chloropicrin" onClick="swfLayerToggle(value, checked);" />Chloropicrin \
<input type="checkbox" checked="true" value="Chlorpyrifos" onClick="swfLayerToggle(value, checked);" />Chlorpyrifos \
<input type="checkbox" checked="true" value="Diazinon" onClick="swfLayerToggle(value, checked);" />Diazinon \
<input type="checkbox" checked="true" value="Fumigants" onClick="swfLayerToggle(value, checked);" />Fumigants \
<input type="checkbox" checked="true" value="Metam Sodium" onClick="swfLayerToggle(value, checked);" />Metam Sodium \
<input type="checkbox" checked="true" value="Methyl Bromide" onClick="swfLayerToggle(value, checked);" />Methyl Bromide \
<input type="checkbox" checked="true" value="Sodium Tetrathiocarbonate" onClick="swfLayerToggle(value, checked);" />Sodium Tetrathiocarbonate \
<input type="checkbox" checked="true" value="Acres Treated" onClick="swfLayerToggle(value, checked);" />Acres Treated \
<input type="checkbox" checked="true" value="Application Rate" onClick="swfLayerToggle(value, checked);" />Application Rate \
<input type="checkbox" checked="true" value="Pesticide Use" onClick="swfLayerToggle(value, checked);" />Pesticide Use \
<input type="checkbox" checked="true" value="Agriculture Use" onClick="swfLayerToggle(value, checked);" />Agriculture Use'

document.write('<form>' + checkboxes + '</form>');

and the function swfLayerToggle() is in a file called checkboxFuntions.js

function getMyApp(appName) {                
    if (navigator.appName.indexOf ("Microsoft") !=-1) { 
        return window[appName];             
    } else {                        
        return document[appName];           
    }                           
}                           

function swfLayerToggle(layer, isOn) {          
    getMyApp("MAPublisherSWF").swfLayerToggle(layer, isOn); 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失眠症患者 2024-07-26 03:18:41

我为 Avenza 工作。

不幸的是,您想要做的事情在 MAPublisher 8.1 中是不可能实现的,但它已添加到现在可用的版本 8.2 中。 只需在 web 地图导出对话框中更改您不希望在地图加载时显示的图层的“初始可见”设置即可。

I work for Avenza.

Unfortunately what you want to do is not possible with MAPublisher 8.1, however it has been added to version 8.2 which is now available. Simply change the "Initially visible" setting in the web map export dialog for the layers that you don't want display when the map loads.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文