当前位置: 首页 > news >正文

网页打包app微软优化大师

网页打包app,微软优化大师,有口碑的坪山网站建设,推广引流的方法一、背景 由于自带的下拉图标是给水平布局的block使用#xff0c;放在垂直布局下显得别扭#xff0c;而且下拉选择后回修改image字段的图片#xff0c;这让我很不爽#xff0c;所以在原来的基础上稍作修改#xff0c;效果如下#xff1a; 二、使用说明 #xff08;1放在垂直布局下显得别扭而且下拉选择后回修改image字段的图片这让我很不爽所以在原来的基础上稍作修改效果如下 二、使用说明 1引入field_icon_dropdown.js到core文件夹中代码在下文 2将field_icon_dropdown注册到Blockly中这样在任意地方都可以使用如果不想注入直接用script标签引入也行代码如下 goog.require(Blockly.FieldIconDropDown); 3block定义代码如下下面代码是直接集成到一个完整block中以设置彩灯块为例 // ZE3P LED Blockly.Blocks[ZE3P_led] {init: function () {this.jsonInit({message0: %1,args0: [{type: field_icon_dropdown,name: COLOR,options: [{src: Blockly.mainWorkspace.options.pathToMedia icons/set-led_coral.svg,width: 48,height: 48,value: Red},{src: Blockly.mainWorkspace.options.pathToMedia icons/set-led_green.svg,width: 48,height: 48,value: Green},{src: Blockly.mainWorkspace.options.pathToMedia icons/set-led_blue.svg,width: 48,height: 48,value: Blue},{src: Blockly.mainWorkspace.options.pathToMedia icons/set-led_orange.svg,width: 48,height: 48,value: Orange},{src: Blockly.mainWorkspace.options.pathToMedia icons/set-led_yellow.svg,width: 48,height: 48,value: Yellow},{src: Blockly.mainWorkspace.options.pathToMedia icons/set-led_white.svg,width: 48,height: 48,value: White},],}],outputShape: Blockly.OUTPUT_SHAPE_ROUND,output: String,extensions: [colours_looks]});} } // ZE3P LED显示颜色 Blockly.Blocks[ZE3P_led_set_color] {init: function () {this.jsonInit({message0: %1%2,args0: [{type: field_image,src: Blockly.mainWorkspace.options.pathToMedia /extensions/ZE3P.png,width: 24,height: 24},{type: field_vertical_separator}],message1: 设置彩灯 %1 显示 %2 ,args1: [{type: field_pin_dropdown,name: INTERFACE,options: Blockly.Blocks.ZE3PInterfaceOptions,},{type: input_value,name: COLOR,}],category: Blockly.Categories.looks,extensions: [colours_looks, shape_statement]});} }; 4添加toolbox配置代码如下 block typeZE3P_led_set_color idZE3P_led_set_colorvalue nameCOLORshadow typeZE3P_ledfield nameCOLORRed/field/shadow/value /block 5转码实现以python为例代码如霞  // LED颜色 Blockly.Python[ZE3P_led] function (block) {let color block.getFieldValue(COLOR) || 0;const code LedColor. color;return [code, Blockly.Python.ORDER_ATOMIC]; }; // LED显示颜色 Blockly.Python[ZE3P_led_set_color] function (block) {const pin block.getFieldValue(INTERFACE) || ;const color Blockly.Python.valueToCode(block, COLOR, Blockly.Python.ORDER_ATOMIC) || ;return led.set_color(Interface.${pin}, ${color})\n; }; 提示如果采用注册方法最好本地编译一下使用javascript引入则不需要  三、效果展示 四、完整代码 完整field_icon_dropdown.js代码如下 use strict;goog.provide(Blockly.FieldIconDropDown); goog.require(Blockly.DropDownDiv);/*** 构造器* param icons* constructor*/ Blockly.FieldIconDropDown function (icons) {this.icons_ icons;// Example:// [{src: ..., width: 20, height: 20, value: machine_value}, ...]// 选择第一个为默认值const defaultValue icons[0].value;Blockly.FieldIconDropDown.superClass_.constructor.call(this, defaultValue);this.addArgType(icon_dropdown); }; goog.inherits(Blockly.FieldIconDropDown, Blockly.Field);/*** Json配置*/ Blockly.FieldIconDropDown.fromJson function (element) {return new Blockly.FieldIconDropDown(element[options]); };/*** 下拉面板宽度不需要修改3个图标宽度* type {number}* const*/ Blockly.FieldIconDropDown.DROPDOWN_WIDTH 168;/*** 颜色记录*/ Blockly.FieldIconDropDown.savedPrimary_ null;/*** 初始化*/ Blockly.FieldIconDropDown.prototype.init function (block) {if (this.fieldGroup_) {return;}// 下拉箭头大小const arrowSize 12;// 重建domthis.fieldGroup_ Blockly.utils.createSvgElement(g, {}, null);this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);// 字段宽度this.size_.width 44;// 图标this.imageElement_ Blockly.utils.createSvgElement(image, {height: 24 px,width: 24 px,x: 4 px,y: 4 px,}, this.fieldGroup_);this.setParentFieldImage(this.getSrcForValue(this.value_));// 下拉箭头位置this.arrowX_ 32;this.arrowY_ 10;if (block.RTL) {this.arrowX_ -this.arrowX_ - arrowSize;}// 下拉图标this.arrowIcon_ Blockly.utils.createSvgElement(image, {height: arrowSize px,width: arrowSize px,transform: translate( this.arrowX_ , this.arrowY_ )}, this.fieldGroup_);this.arrowIcon_.setAttributeNS(http://www.w3.org/1999/xlink,xlink:href, Blockly.mainWorkspace.options.pathToMedia dropdown-arrow.svg);this.mouseDownWrapper_ Blockly.bindEventWithChecks_(this.getClickTarget_(), mousedown, this, this.onMouseDown_); };/*** 鼠标放置样式*/ Blockly.FieldIconDropDown.prototype.CURSOR default;/*** 设置值*/ Blockly.FieldIconDropDown.prototype.setValue function (newValue) {if (newValue null || newValue this.value_) {return; // No change}if (this.sourceBlock_ Blockly.Events.isEnabled()) {Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_, field, this.name, this.value_, newValue));}this.value_ newValue;this.setParentFieldImage(this.getSrcForValue(this.value_)); };/*** 设置当前选择图片*/ Blockly.FieldIconDropDown.prototype.setParentFieldImage function (src) {if (this.imageElement_ src) {this.imageElement_.setAttributeNS(http://www.w3.org/1999/xlink, xlink:href, src || );} };/*** 获取值*/ Blockly.FieldIconDropDown.prototype.getValue function () {return this.value_; };/*** 根据src获取值* param value* returns {*}*/ Blockly.FieldIconDropDown.prototype.getSrcForValue function (value) {for (var i 0, icon; icon this.icons_[i]; i) {if (icon.value value) {return icon.src;}} };/*** 下拉选择*/ Blockly.FieldIconDropDown.prototype.showEditor_ function () {if (Blockly.DropDownDiv.hideIfOwner(this)) {return;}Blockly.DropDownDiv.hideWithoutAnimation();Blockly.DropDownDiv.clearContent();// 构建下拉内容const contentDiv Blockly.DropDownDiv.getContentDiv();// Accessibility propertiescontentDiv.setAttribute(role, menu);contentDiv.setAttribute(aria-haspopup, true);for (let i 0, icon; icon this.icons_[i]; i) {// 按钮const button document.createElement(button);button.setAttribute(id, : i);button.setAttribute(role, menuitem);button.setAttribute(class, blocklyDropDownButton);button.title icon.alt;button.style.width icon.width px;button.style.height icon.height px;let backgroundColor this.sourceBlock_.getColour();if (icon.value this.getValue()) {backgroundColor this.sourceBlock_.getColourTertiary();button.setAttribute(aria-selected, true);}button.style.backgroundColor backgroundColor;button.style.borderColor this.sourceBlock_.getColourTertiary();// 事件Blockly.bindEvent_(button, click, this, this.buttonClick_);Blockly.bindEvent_(button, mouseup, this, this.buttonClick_);Blockly.bindEvent_(button, mousedown, button, function (e) {this.setAttribute(class, blocklyDropDownButton blocklyDropDownButtonHover);e.preventDefault();});Blockly.bindEvent_(button, mouseover, button, function () {this.setAttribute(class, blocklyDropDownButton blocklyDropDownButtonHover);contentDiv.setAttribute(aria-activedescendant, this.id);});Blockly.bindEvent_(button, mouseout, button, function () {this.setAttribute(class, blocklyDropDownButton);contentDiv.removeAttribute(aria-activedescendant);});// 图标const buttonImg document.createElement(img);buttonImg.src icon.src;button.setAttribute(data-value, icon.value);buttonImg.setAttribute(data-value, icon.value);button.appendChild(buttonImg);contentDiv.appendChild(button);}contentDiv.style.width Blockly.FieldIconDropDown.DROPDOWN_WIDTH px;// 设置颜色Blockly.DropDownDiv.setColour(this.sourceBlock_.getColour(), this.sourceBlock_.getColourTertiary());Blockly.DropDownDiv.setCategory(this.sourceBlock_.parentBlock_.getCategory());this.savedPrimary_ this.sourceBlock_.getColour();this.sourceBlock_.setColour(this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary());const scale this.sourceBlock_.workspace.scale;const secondaryYOffset (-(Blockly.BlockSvg.MIN_BLOCK_Y * scale) - (Blockly.BlockSvg.FIELD_Y_OFFSET * scale));const renderedPrimary Blockly.DropDownDiv.showPositionedByBlock(this, this.sourceBlock_, this.onHide_.bind(this), secondaryYOffset);if (!renderedPrimary) {const arrowX this.arrowX_ Blockly.DropDownDiv.ARROW_SIZE / 1.5 1;const arrowY this.arrowY_ Blockly.DropDownDiv.ARROW_SIZE / 1.5;this.arrowIcon_.setAttribute(transform, translate( arrowX , arrowY ) rotate(180));} };/*** 点击按钮*/ Blockly.FieldIconDropDown.prototype.buttonClick_ function (e) {const value e.target.getAttribute(data-value);this.setValue(value);Blockly.DropDownDiv.hide(); };/*** 关闭下拉面板时回掉*/ Blockly.FieldIconDropDown.prototype.onHide_ function () {if (this.sourceBlock_) {this.sourceBlock_.setColour(this.savedPrimary_,this.sourceBlock_.getColourSecondary(),this.sourceBlock_.getColourTertiary());}Blockly.DropDownDiv.content_.removeAttribute(role);Blockly.DropDownDiv.content_.removeAttribute(aria-haspopup);Blockly.DropDownDiv.content_.removeAttribute(aria-activedescendant);this.arrowIcon_.setAttribute(transform, translate( this.arrowX_ , this.arrowY_ )); };Blockly.Field.register(field_icon_dropdown, Blockly.FieldIconDropDown);五、关于我 作者陆志敏 联系761324428qq.com
http://www.hkea.cn/news/14582360/

相关文章:

  • 如果在阿里云上做自己的网站免费网页制作的网站
  • 做网站时需要注意什么qq是哪个公司开发的软件
  • 全网vip视频网站怎么做51源码网
  • 网站建设与运营的收入来源怎么做房地产网站
  • 深圳网站制作招聘怎么重新网站做301
  • 做网站网站犯法吗网页设计制作软件
  • 如何在自己网站上做支付宝吗男女直接做那个视频网站
  • 建立一个网站需要哪些ip网站查询服务器
  • 制作网站演示关于行业网站建设意见
  • jsp企业网站开发前期报告渭南有几个县
  • 很有设计感的企业网站wordpress 多域名绑定
  • 南京网站制作电话个人网站的设计与实现摘要
  • 优速网站建设微信小程序怎么做商城
  • 苏州网站建设熊掌开发公司网签过期
  • 自己电脑做网站服务器设置网站自适应宽度
  • 网站建设公司伟置国外论文类网站有哪些方面
  • 电脑网站转手机版纪念平台网站建设
  • 如何建立国际网站苏州网络公司优惠政策
  • 网站建设公司推荐q479185700顶上如何将自己做的网站放到网上去
  • 建行国际互联网网站工商局企业信息查询系统官网
  • 网站上传到万网主机中国建设银行广东分行网站
  • 深圳网站建设总部网络工程技术就业前景
  • 房地产电子商务的网站建设网站备案需要拍照
  • 林业网站模板做网站需要用什么软件
  • 企业网站模板观叫湖南岚鸿团队wordpress主题丢失
  • 免费设计app的网站建设教育网络平台建设
  • 网站做产品的审核工作如何制作一个企业网站
  • 定制网站建设公司哪家便宜定制麻将app软件多少钱
  • 厦门h5建站公关公司经营范围
  • flash网站开发教程网站建设专员 岗位职责