Samples_Event explorer_watch properties注释解读研究

2024-02-24 17:38

本文主要是介绍Samples_Event explorer_watch properties注释解读研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个例子可以学习事件和属性,挺有意思的,故格了这个程序一个礼拜了,大概明白了一点,全端出来共享一下了

<html><head><meta charset="utf-8" /><meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /><title>Event explorer / watch properties | Sample | ArcGIS API for JavaScript 4.19</title><link rel="stylesheet" href="https://js.arcgis.com/4.19/esri/themes/light/main.css" /><script src="https://js.arcgis.com/4.19/"></script><script>require(["esri/Map", "esri/views/SceneView"], (Map, SceneView) => {const map = new Map({basemap: "topo-vector",ground: "world-elevation"});const view = new SceneView({container: "viewDiv",map: map,qualityMode: "high",camera: {position: [-101.17, 20.76793656, 12908164.47184],heading: 0.0,tilt: 0.5}});//此处添加了——arr表明这是个数组,下面的属性也是一样const events_arr = ["pointer-enter","pointer-leave","pointer-move","pointer-down","pointer-up","immediate-click","click","immediate-double-click","double-click","mouse-wheel","drag","hold","key-down","key-up","focus","blur","resize"];// for the purpose of the sample, this is only a selection of properties,为了达到演示的目的,这只是属性的一小部分,// but any properties on the View can be watched for 但是任何View的属性均可以被观察被watch for //个人添加了_arr表明这是个数组const properties_arr = ["focused","interacting","updating","resolution","scale","zoom","stationary","camera.position.z","camera.tilt","camera.heading"];// Dynamically create the table of events and properties from the defined array//从预定义好的数组中动态地创建事件表和属性表function createTables() {const eventsTable = document.getElementById("events");//得到右上角的events的元素console.log("get events_node:"+eventsTable);let content = eventsTable.innerHTML;//让内容等于元素的innerHTMLconsole.log("get events_node_innerhtml :"+content);//循环events_arr这个数组,为这个content赋值,每一个事件条目都是div 记住这个。for (let i = 0; i < events_arr.length; i++) {//创建了一个div 元素,class 为 event,id依此为数组中的各个单个值,pointer-enter,pointer-leave......//用这种方式也创建了新的元素,创建了新的元素content += '<div class="event" id="' + events_arr[i] + '">' +"I am "+ events_arr[i];content += "</div>";console.log(i+"of"+events_arr.length+"event is created in the for loops:"+content);}eventsTable.innerHTML = content;//让events元素的innerHTML等于content,不懂为啥又来了这么一句,因为前面有content=eventsTable.innerHTMLconsole.log("after eventTable_innerHTML equal console_content:"+content);//上面是event即事件的区域,下面的是properties即属性的区域const propertiesTable = document.getElementById("properties");console.log("after const propertyTable:"+propertiesTable);//这个content还是上面声明过的那个contentcontent = propertiesTable.innerHTML;console.log("after let content equal propertiesTable_innerHTML:"+content);for (let i = 0; i < properties_arr.length; i++) {//创建了一个div 元素,class为property,id依此为属性数组中的各个单个值,如focused,interacting......//用这种方式也创建了新的元素,创建了新的元素content += '<div class="property" id="' + properties_arr[i] + '">' + "I am "+ properties_arr[i] + " = </div>";console.log(i+"of"+properties_arr.length+"properties is created in the for loops:"+content);}propertiesTable.innerHTML = content;console.log("after property_innerHTML equal console_content:"+content);}//函数:建立Event的监听器,name是某个元素的id,注意:同时它也是一个事件名哦,可以用于xxx.on(name,func)这种情况下的哦。function setupEventListener(view, name) {const eventRow = document.getElementById(name);console.log(eventRow);view.on(name, (value) => {eventRow.className = "event active";//元素的className为:event active ,active之后就变得是实心的字了,inactive的时候是灰色的console.log(name);//往控制台输出这个eventif (eventRow.highlightTimeout) {clearTimeout(eventRow.highlightTimeout);}eventRow.highlightTimeout = setTimeout(() => {// after a timeout of one second disable the highlight//过了timeout的秒数了,就使得高亮不能用eventRow.className = "event inactive";}, 1000);});}function setupPropertiesListener(view, name) {const propertiesRow = document.getElementById(name);view.watch(name, (value) => {propertiesRow.className = "property active";propertiesRow.innerHTML = propertiesRow.innerHTML.substring(0, propertiesRow.innerHTML.indexOf(" = "));console.log(name);//往控制台输出这个property// set the text to the received valueconst formattedValue = typeof value === "number" ? value.toFixed(4) : value;propertiesRow.innerHTML += " = " + formattedValue.toString();if (propertiesRow.highlightTimeout) {clearTimeout(propertiesRow.highlightTimeout);}propertiesRow.highlightTimeout = setTimeout(() => {// after a timeout of one second disable the highlightpropertiesRow.className = "property inactive";}, 1000);});}// create the tables for the events and properties//调用createTables(),创建eventtable和propertytablecreateTables();// Setup all view events defined in the array//为数组中的那些事件来分配响应函数for (let i = 0; i < events_arr.length; i++) {setupEventListener(view, events_arr[i]);}// Setup all watch properties defined in the array//为数组中的那些属性创建响应函数for (let i = 0; i < properties_arr.length; i++) {setupPropertiesListener(view, properties_arr[i]);}});</script><style>html,body {padding: 0;margin: 0;height: 100%;width: 100%;}#viewDiv {position: absolute;left: 0;right: 250px;top: 0;bottom: 0;height: 100%;}#panel {background-color: #f5f5f5;position: absolute;right: 0;height: 100%;width: 250px;font-size: 12px;}.title {font-weight: bold;color: #0079c1;}.container {background-color: white;color: #323232;margin: 10px;padding: 5px;border-bottom: 1px solid rgba(50, 50, 50, 0.25);}.event,.property {transition: background-color 0.5s ease-out;padding-bottom: 2px;opacity: 0.2;}.active {opacity: 1;background-color: #f30909;}.inactive {opacity: 1;background-color: white;}</style></head><body><div id="main"><div id="viewDiv"></div><div id="panel" class="esri-widget"><div id="events" class="container"><aclass="title"href="https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#events-summary"target="_blank">Class View Events:</a></div><div id="properties" class="container"><aclass="title"href="https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#properties-summary"target="_blank">Class View Properties:</a></div></div></div></body>
</html>

 

这篇关于Samples_Event explorer_watch properties注释解读研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/742845

相关文章

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互