1.Storybook vue2组件库搭建到 npm 发布【入门篇】
2.vueVue3中使用函数调用组件内函数和创建组件超详细+源码
3.GitLab ARM64源码在信创统信UOS下的源码搭建
4.ç»ä»¶çå
·ä½å建
5.FUTU六语言秒合约交易所源码详细搭建教程
6.UGUI 源码笔记(一)文件结构和部分组件使用
Storybook vue2组件库搭建到 npm 发布【入门篇】
Storybook 是一个强大的前端开发工具,专为组件管理和测试设计。组件它帮助开发者以交互方式构建、搭建测试和展示组件,操作提供独立的源码页面,便于快速展示和调试。组件linphone android源码以下是搭建使用Storybook进行组件库搭建到npm发布的基本步骤:1. 安装和初始化项目
使用Node ..0和npm 8..4,可通过`npx -p @storybook/cli sb init --type vue`快速创建Vue 2版本的操作项目。然后,源码使用Vue CLI创建`vue2-storybook-module`。组件2. 启动和打包组件
进入项目,搭建关联git仓库,操作安装Storybook。源码接下来,组件封装组件并注册,搭建官网示例可以直接使用。记得修改`package.json`以配置打包,生成的`my-storybook-ui`文件夹存放打包后的组件。3. 发布到npm
在`my-storybook-ui`目录下,初始化`package.json`,并切换到npm官方源。如果已有账号,通过命令行发布,检查包名是否冲突。发布成功后,可在npm官网上查看你的包。4. 在项目中使用组件
在`main.js`中全局注册组件,启动项目后,其他开发者即可通过npm安装和使用你的组件库。 源码及更多详细信息可在以下链接找到:源码:github.com/you-hei-mi/v...
组件地址:my-storybook-ui - npm (npmjs.com)
组件文档:Configure your project - Docs ⋅ Storybook
vueVue3中使用函数调用组件内函数和创建组件超详细+源码
在uniapp项目中,结合vue3和typescript,你可能会遇到不想频繁在视图层引入组件的困扰。传统的奶牛家 源码资本组件应用方式需要每次使用时都进行应用,即使不使用也需引入。为了解决这个问题,你可能尝试通过函数调用直接创建和操作组件。
首先,你可能会查阅到使用`createApp`方法,创建组件实例并传递参数,就像父组件传递数据给子组件。例如:
然而,直接在`createApp`中调用组件方法可能并不直接有效。此时,你可以考虑转向函数式组件(h)和`render`函数。将组件的方法挂载到vue原型链上,以便在外部函数中调用。例如在`toast.ts`中:
typescript
// toast.ts
Vue.prototype.$toast = function(message) {
// 实现 toast 方法...
};
然后在项目中这样使用:
显示提示
最后,记得分享你的发现,关注个人博客和开源项目,加入技术交流群组,与他人交流学习,共同进步。如果你在过程中遇到问题,欢迎留言,大家会一起探讨解答。
GitLab ARM源码在信创统信UOS下的搭建
GitLab是一个基于Ruby on Rails语言开发的开源应用,提供私有化的Git项目仓库,可通过Web界面进行访问和管理。GitLab官方提供了多种安装方式,包括通过操作系统软件源安装、Docker容器部署以及源代码自编译安装。然而,GitLab官方构建的软件包和镜像主要针对X架构,并未提供针对ARMv8的版本。UOS操作系统支持多种CPU架构(AMD、有米埠源码ARM、MIPS、SW)和六种国产CPU平台(鲲鹏、龙芯、申威、海光、兆芯、飞腾)以及Intel/AMD的主流CPU,UOSV基于Debian stable,内核为4.,支持多种架构。由于GitLab官方Omnibus安装包并未支持arm架构,因此需要通过源码编译来安装GitLab-ce .1-stable在UOSV arm架构上。
在部署GitLab-ce .1-stable之前,首先需要搭建编译环境,包括Ruby 2.7.4、redis 6.2.4、git 2..0、Go:.、Postgres: 、Node: .x、Nginx:1..1。编译过程较为平顺,但安装Ruby、Node和Go时需要注意选择国内镜像源以确保顺利编译。GitLab-ce:-1-stable版本要求Git2..x或以上版本,推荐使用Gitaly提供的git版本。UOSV 版本若选择调试工具包,则系统自带的git版本不符合要求,需要手动安装Gitaly所提供的git版本,确保版本满足GitLab要求。安装完成后,借力酷源码系统会显示版本为2..0,满足要求。此外,还需安装GraphicsMagick支持GitLab引入的自定义图标功能,以及安装Postfix邮件服务器和exiftool以支持GitLab Workhorse功能。Ruby的安装也非常重要,更换国内Ruby Gem源能够提高编译过程的稳定性。
在完成编译环境搭建后,需为GitLab创建一个名为git的用户。GitLab .1及以后版本仅支持PostgreSQL数据库,GitLab-ce .1-stable需要PostgreSQL 或以上版本,并且需要pg_trgm扩展和btree_gist扩展。GitLab .0及以后版本要求Redis版本4.0或以上,推荐使用6.0或以上版本。部署GitLab-ce .1-stable需要编译三个部分:gitLab核心代码、gitlab-shell和GitLab-Workhorse。编译完成后,主要目录结构会根据部署环境进行相应调整。
配置GitLab的各个组件时,需要将源码配置调整为已搭建环境的配置。主要修改数据库配置为已安装的PostgreSQL 版本。安装过程中可能会遇到一些小问题,如使用sudo执行某些命令时的超时错误。解决这类问题通常需要检查和调整环境变量,确保git账号的环境变量能够正常工作。例如,通过修改/etc/sudoers文件,确保在执行sudo命令时保留所需的环境变量,如GOPROXY。安装完成后,GitLab及其环境应已正确配置,系统架构识别为arm,c语言源码nginxGitLab版本为.1,redis版本未读取但不影响使用。至此,GitLab在UOSV arm架构上成功部署完毕。
ç»ä»¶çå ·ä½å建
ç®ä»å建ç»ä»¶å°±æ¯èªè¡è®¾è®¡å¶ä½åºæ°çç»ä»¶ã ã设计ç»ä»¶æ¯ä¸é¡¹ç¹éçå·¥ä½ãèªè¡å¼åç»ä»¶ä¸ä½¿ç¨ç»ä»¶è¿è¡å¯è§åç¨åºå¼ååå¨çæ大çä¸åï¼è¦æ±ç¨åºåçç¥åæçVCLç±»åºç»æï¼ç²¾éé¢å对象ç¨åºè®¾è®¡ã设计ç»ä»¶æ¯ä¸é¡¹è°è¦çå·¥ä½ã对äºç»ä»¶çå¼åè ï¼ç»ä»¶æ¯çº¯ç²¹ç代ç ãç»ä»¶çå¼åä¸æ¯ä¸ä¸ªå¯è§åçå¼åè¿ç¨ï¼èæ¯ç¨C++æObject Pascalä¸¥æ ¼ç¼å¶ä»£ç çå·¥ä½ãå®é ä¸ï¼å建æ°ç»ä»¶ä½¿æ们åå°ä¼ ç»å¼åå·¥å ·çæ¶ä»£ãè½ç¶è¿æ¯ä¸ä¸ªå¤æçè¿ç¨ï¼ä½ä¹æ¯ä¸ä¸ªä¸å³æ°¸é¸çè¿ç¨ãå建ç»ä»¶çæ大æä¹å¨äºå°è£ éå¤çå·¥ä½ï¼å ¶æ¬¡æ¯å¯ä»¥æ©å ç°æç»ä»¶çåè½ãç»ä»¶å建è¿ç¨å æ¬è®¾è®¡ãå¼åãè°è¯ï¼å°±æ¯æè°ç3D'sï¼å·¥ä½ï¼ç¶åæ¯ç»ä»¶ç使ç¨ãç»ä»¶å¼åè åºè¯¥ææ¡çä¸é¡¹ä¸»è¦å 容æ¯ï¼å±æ§ãäºä»¶åæ¹æ³ã
ç»ä»¶æºæ件
ç»ä»¶é¢æ¿ä¸æä¾çç»ä»¶é½æ¯é¢ç¼è¯è¿ç SWC åªè¾ãåæ¶è¿æä¾äºæº Flash ææ¡£ (FLA)ï¼å ¶ä¸å æ¬çæ¯è¿äºç»ä»¶çå¾å½¢ï¼åæº ActionScript ç±»æ件(AS)ï¼å ¶ä¸å å«çæ¯è¿äºç»ä»¶ç代ç ï¼ï¼ä»¥ä¾¿äºæ¨å¨å建èªå·²çèªå®ä¹ç»ä»¶æ¶ä½¿ç¨ã第 2 çç»ä»¶çæºæ件é Macromedia Flash ä¸èµ·å®è£ ãå¨æ建èªå·±çç»ä»¶ä¹åï¼æå¼å¹¶æ¥çå ¶ä¸é¨åæ件ï¼å°è¯å»äºè§£è¿äºæ件çç»æï¼ä¼å¯¹æ¨ææ帮å©ãRadioButton ç»ä»¶å°±æ¯è¾ä¸ºç®åçç»ä»¶ç示ä¾ï¼æ¨å¯è½åºé¦å ç 究该ç»ä»¶ãStandardComponents.fla çåºä¸çææç»ä»¶é½æ¯å 件ãæ¯ä¸ªå 件é½é¾æ¥å°ä¸ä¸ª ActionScript ç±»ãå®ä»¬çä½ç½®å¦ä¸ï¼
FLAæ件æºä»£ç å¨ Windows ä¸ï¼C:Program FilesMacromediaFlash 8è¯è¨ConfigurationComponentFLAStandardComponents.flaã å¨ Macintosh ä¸ï¼HD/Applications/Macromedia Flash 8/Configuration/ComponentFLA/StandardComponents.fla ActionScript ç±»æä»¶å¨ Windows ä¸ï¼C:Program FilesMacromediaFlash 8è¯è¨First RunClassesmx å¨ Macintosh ä¸ï¼HD/Applications/Macromedia Flash 8/First Run/Classes/mx
ç»ä»¶ç»ææ¦è¿°
ç»ä»¶ç± Flash (FLA)æ件å ActionScript (AS)æ件ç»æãæ¨å¯ä»¥éæ©åå»ºå ¶å®æ件ï¼ä¾å¦ï¼å¾æ å .swd è°è¯æ件ï¼ï¼å¹¶å°å ¶ä¸ç»ä»¶ä¸èµ·æå ï¼ä½ææç»ä»¶é½éè¦ä¸ä¸ª FLA æ件åä¸ä¸ª ActionScript æ件ãå®æç»ä»¶å¼ååï¼éè¦å°å®å¯¼åºä¸º SWC æ件ã
Flash (FLA)æ件ãActionScript (AS) æ件å SWC æ件FLAæ件å å«ä¸ä¸ªå½±çåªè¾å 件ï¼è¯¥å ä»¶å¿ é¡»å¨é¾æ¥å±æ§åç»ä»¶å®ä¹å¯¹è¯æ¡ä¸é¾æ¥å° AS æ件ã
å½±çåªè¾å 件æ两个帧å两个å¾å±ã第ä¸ä¸ªå¾å±æ¯ Actions å¾å±ï¼å®ç第ä¸å¸§ä¸æä¸ä¸ª stop()å ¨å±å½æ°ã第äºä¸ªå¾å±æ¯ Assets å¾å±ï¼å®æä¸¤ä¸ªå ³é®å¸§ï¼ç¬¬ä¸å¸§å å«ä¸ä¸ªè¾¹æ¡ï¼ç¬¬äºå¸§å å«ææå ¶å®èµæºï¼å ¶ä¸å æ¬ç»ä»¶ä½¿ç¨çå¾å½¢ååºç±»ã
æå®ç»ä»¶çå±æ§åæ¹æ³ç ActionScript 代ç ä½äºåç¬ç ActionScript ç±»æ件ä¸ãæ¤ç±»æ件è¿å£°æç»ä»¶çæ©å±çç±»ï¼å¦ææï¼ãAS ç±»æ件çå称为ç»ä»¶çå称å ä¸.asæ©å±åãä¾å¦ï¼MyComponent å å« MyComponent ç»ä»¶çæºä»£ç ã
æ好å°ç»ä»¶ç FLA å ASæ件ä¿åå¨åä¸æ件夹并å°è¿ä¸¤ä¸ªæ件æå®ä¸ºç¸åçå称ãå¦æå° ASæ件ä¿åå¨å ¶å®æ件夹ä¸ï¼åå¿ é¡»ç¡®è®¤è¯¥æ件夹å¨ç±»è·¯å¾ä¸ï¼ä»¥ä¾¿ FLA æ件è½å¤æ¾å°å®ãæå ³ç±»è·¯å¾ç详ç»ä¿¡æ¯ï¼è¯·åé å¦ä¹ Flash ä¸ç ActionScript 2.0ä¸çç±»ã
æ建第ä¸ä¸ªç»ä»¶
å¨æ¬èä¸ï¼å°æ建ä¸ä¸ª Dial ç»ä»¶ãå·²å®æçç»ä»¶æ件Dial.flaãDial å DialAssets.fla ä½äºè®¡ç®æºä¸ç以ä¸ç¤ºä¾æ件夹ä¸ï¼
å¨ Windows ä¸ï¼C:Program FilesMacromediaFlash 8Samples and TutorialsSamplesComponentsDialComponentæ件夹ã
å¨ Macintosh ä¸ï¼HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/Components/DialComponentæ件夹ã
Dial ç»ä»¶æ¯ä¸ä¸ªçµä½è®¡ï¼ç±»ä¼¼äºæµéçµåå·®ççµä½è®¡ãç¨æ·å¯ä»¥åå»å¹¶æå¨æéæ¥æ´æ¹æéä½ç½®ãDial ç»ä»¶ç API å ·æä¸ä¸ª value å±æ§ï¼å¯ç¨æ¥è·åå设置æéçä½ç½®ã
éæ©ç¶ç±»
å建ç»ä»¶æ¶ï¼é¦å è¦ç¡®å®æ¯å¦æ©å±æ个第 2 çç±»ãå¦æéæ©æ©å±æ个第 2 çç±»ï¼åå¯ä»¥æ©å±æ个ç»ä»¶ç±»ï¼ä¾å¦ï¼ButtonãCheckBoxãComboBoxãList çï¼ææ个åºç±»ï¼UIObject æ UIComponentï¼ãé¤ Media ç»ä»¶ä¹å¤ï¼ææå ¶å®ç»ä»¶ç±»é½æ©å±åºç±»ï¼å¦ææ©å±ç»ä»¶ç±»ï¼è¯¥ç±»ä¹ä¼èªå¨ä»åºç±»ç»§æ¿ã
两个åºç±»ä¸ºç»ä»¶æä¾äºå¸¸è§åè½ãéè¿æ©å±è¿äºç±»ï¼ç»ä»¶ä¸å¼å§å³å ·å¤ä¸ç»åºæ¬çæ¹æ³ãå±æ§åäºä»¶ã
å¨ç¬¬ 2 çæ¡æ¶ä¸ï¼æ¨æ éå建 UIObject åç±»ãUIComponent åç±»æä»»ä½å ¶å®ç±»ãå³ä½¿ç»ä»¶ç±»ç´æ¥ç»§æ¿èª MovieClip ç±»ï¼ä¹å¯ä»¥ä½¿ç¨è®¸å¤å¼ºå¤§çç»ä»¶åè½ï¼å¯¼åºå° SWCæ件æç¼è¯åªè¾ã使ç¨å ç½®å®æ¶é¢è§ãæ¥çå¯æ£æ¥å±æ§ççãä½æ¯ï¼å¦æè¦å°ç»ä»¶ç¨äº Macromedia 第 2 çç»ä»¶ï¼å¹¶è¦ä½¿ç¨ç®¡çå¨ç±»ï¼å°±éè¦æ©å± UIObject æ UIComponentã
ä¸è¡¨ç®è¦è¯´æ第 2 çåºç±»ï¼ åºç±» æ©å± 说æ mx.core.UIObject MovieClip UIObject æ¯ææå¾å½¢å¯¹è±¡çåºç±»ã mx.core.UIComponent UIObject UIComponent æ¯ææç»ä»¶çåºç±»ã äºè§£ UIObject ç±»
åºäº Macromedia ComponentArchitecture第 2 ççç»ä»¶æºèª UIObject ç±»ï¼è¯¥ç±»æ¯ MovieClip ç±»çåç±»ãMovieClip ç±»æ¯ Flash ä¸å¯ä»¥å¨å±å¹ä¸è¡¨ç¤ºå¯è§å¯¹è±¡çææç±»çåºç±»ã
UIObject æ·»å ç¨äºå¤çæ ·å¼åäºä»¶çæ¹æ³ãå®å¨å è½½åå¸è½½æ¶ï¼load å unloadï¼ãå¸å±æ´æ¹æ¶ï¼moveãresizeï¼ä»¥åéèææ¾ç¤ºæ¶ï¼hideå revealï¼ï¼é½ä¼å¨ç»å¶ï¼draw äºä»¶çæäº MovieClip.onEnterFrame äºä»¶ï¼ä¹åå°äºä»¶åéå°å®ç侦å¬å¨ã
UIObject å¦å¤æä¾åªè¯»åéæ¥ç¡®å®ç»ä»¶çä½ç½®å大å°ï¼widthãheightãxãyï¼ï¼å¹¶æä¾ move() å setSize() æ¹æ³æ¥æ¹å对象çä½ç½®å大å°ã
UIObject ç±»å®ç°ä»¥ä¸åè½ï¼
æ ·å¼
äºä»¶
æ缩æ¾æ¯ä¾è°æ´å¤§å°
äºè§£ UIComponent ç±»
UIComponent ç±»æ¯ UIObject çåç±»ï¼è¯·åé ç»ä»¶è¯è¨åèä¸çUIComponent ç±»ï¼ãå®æ¯å¤çç¨æ·äº¤äºï¼é¼ æ åé®çè¾å ¥ï¼çææç»ä»¶çåºç±»ãUIComponent ç±»å 许ç»ä»¶æ§è¡ä»¥ä¸æä½ï¼
æ¥æ¶ç¦ç¹åé®çè¾å ¥
å¯ç¨åç¦ç¨ç»ä»¶
æå¸å±è°æ´å¤§å°
å ³äºæ©å±å ¶å®ç¬¬ 2 çç±»
为äºè½å¤æ´æ¹ä¾¿å°æé ç»ä»¶ï¼å¯ä»¥æ©å±ä»»ä½ç±»çåç±»ï¼è¿æ ·ä¹å°±ä¸éè¦ç´æ¥æ©å± UIObject æ UIComponent ç±»ãå¦ææ©å±ä»»ä½å ¶å®ç¬¬ 2 çç»ä»¶ç±»ï¼Media ç»ä»¶é¤å¤ï¼ï¼é»è®¤æ åµä¸ä¹ä¼æ©å± UIObject å UIComponentãæ¨å¯ä»¥éè¿æ©å±ç»ä»¶åå ¸ä¸ååºçä»»ä½ç»ä»¶ç±»æ¥å建æ°ç»ä»¶ç±»ã
ä¾å¦ï¼å¦æè¦å建ä¸ä¸ªç»ä»¶ï¼å ¶è¡ä¸ºä¸ Button ç»ä»¶çè¡ä¸ºå ä¹ç¸åï¼å°±å¯ä»¥æ©å± Button ç±»ï¼èä¸å¿ ä»åºç±»éæ°å建 Button ç±»çææåè½ã
ä¸å¾æ¾ç¤ºäºç¬¬ 2 çç»ä»¶çå±æ¬¡ç»æï¼
æ¤æ件ç FlashPaper çæ¬å¯å¨ Flashå®è£ ç®å½ç以ä¸ä½ç½®æ¾å°ï¼Flash 8Samples and TutorialsSamplesComponentsarch_diagram.swfã
å ³äºæ©å± MovieClip ç±»
æ¨å¯ä»¥éæ©ä¸æ©å±ç¬¬ 2 çç±»ï¼è让ç»ä»¶ç´æ¥ç»§æ¿ ActionScript MovieClip ç±»ãä½æ¯ï¼å¦æéè¦ UIObject å UIComponent çä»»ä½åè½ï¼åå¿ é¡»äº²èªæ建ãæ¨å¯ä»¥æå¼ UIObject å UIComponent ç±» (First Run/Classes/mx/core) æ¥æ£æ¥å®ä»¬çæé æ¹å¼ã
å建ç»ä»¶å½±çåªè¾
è¥è¦å建ä¸ä¸ªç»ä»¶ï¼å¿ é¡»å建ä¸ä¸ªå½±çåªè¾å 件并å°å®é¾æ¥å°è¯¥ç»ä»¶çç±»æ件ã
å½±çåªè¾æ两个帧å两个å¾å±ã第ä¸ä¸ªå¾å±æ¯ Actions å¾å±ï¼å®ç第ä¸å¸§ä¸æä¸ä¸ª stop() å ¨å±å½æ°ã第äºä¸ªå¾å±æ¯ Assets å¾å±ï¼å®æä¸¤ä¸ªå ³é®å¸§ã第ä¸å¸§å å«ä¸ä¸ªè¾¹æ¡æå å½æç»å¾ççå ä½ç¬¦çä»»æå¾å½¢ã第äºå¸§å å«ææå ¶å®èµæºï¼å æ¬ç»ä»¶ä½¿ç¨çå¾å½¢ååºç±»ã
æå ¥æ°çå½±çåªè¾å 件
ææç»ä»¶é½æ¯ MovieClip 对象ãè¦å建æ°ç»ä»¶ï¼é¦å å¿ é¡»å°æ°å 件æå ¥æ°ç FLA æ件ä¸ã
æ·»å æ°ç»ä»¶å 件ï¼
å¨ Flash ä¸ï¼å建空ç½ç Flash ææ¡£ã
éæ©æå ¥>æ°å»ºå 件ã
æ¾ç¤ºå建æ°å 件对è¯æ¡ã
è¾å ¥å 件å称ã为ç»ä»¶å½åï¼æ¹æ³æ¯å°ç»ä»¶ä¸æ¯ä¸ªåè¯ç第ä¸ä¸ªåæ¯æ´æ¹ä¸ºå¤§ååæ¯ï¼ä¾å¦ MyComponentï¼ã
éæ©å½±çåªè¾è¡ä¸ºã
åå»é«çº§æé®æ¾ç¤ºé«çº§è®¾ç½®ã
éæ©ä¸º ActionScript 导åºï¼åæ¶éæ©å¨ç¬¬ä¸å¸§å¯¼åºã
è¾å ¥é¾æ¥æ è¯ç¬¦ã
å¨AS 2.0 ç±»ææ¬æ¡ä¸ï¼è¾å ¥ ActionScript 2.0 ç±»çå®å ¨éå®è·¯å¾ã
ç±»å称åºä¸æ¾ç¤ºå¨ç»ä»¶é¢æ¿ä¸çç»ä»¶å称ç¸åãä¾å¦ï¼Button ç»ä»¶ç类为 mx.controls.Buttonã
注æ
ä¸è¦å å«æ件æ©å±åï¼AS 2.0 ç±»ææ¬æ¡æåç±»çæå ä½ç½®ï¼èä¸æ¯è¯¥æ件çæ件系ç»å称ã
å¦æ ActionScriptæ件ä½äºå å ï¼å¿ é¡»å å«è¯¥å çå称ãæ¤å¼å¯ä»¥æ¯ç±»è·¯å¾çç¸å¯¹è·¯å¾ï¼ä¹å¯ä»¥æ¯å çç»å¯¹è·¯å¾ï¼ä¾å¦ mypackage.MyComponentï¼ã
大å¤æ°æ åµä¸ï¼åºåæ¶éä¸å¨ç¬¬ä¸å¸§å¯¼åºï¼é»è®¤éä¸è¯¥é项ï¼ãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åé ç»ä»¶å¼åæ£æ¥å表ã
åå»ç¡®å®ã
Flash å°å 件添å å°åºä¸ï¼ç¶ååæ¢å°å 件ç¼è¾æ¨¡å¼ãå¨æ¤æ¨¡å¼ä¸ï¼å 件çå称æ¾ç¤ºäºèå°å·¦ä¸è§çä¸æ¹ï¼å¹¶ä¸æä¸ä¸ªåå线表æ该å 件ç注åç¹ã
æ¨ç°å¨å°±å¯ä»¥ç¼è¾è¯¥å 件以å建ä¸ä¸ªç»ä»¶ã请åé ç¼è¾å½±çåªè¾ã
ç¼è¾å½±çåªè¾
å¨å建æ°å ä»¶å¹¶ä¸ºå ¶å®ä¹é¾æ¥åï¼å³å¯å¨è¯¥å 件çæ¶é´è½´ä¸å®ä¹ç»ä»¶çèµæºã
ç»ä»¶çå 件åºæ两个å¾å±ãæ¬è说æåºè¯¥æå ¥åªäºå¾å±ï¼åºè¯¥å¨è¿äºå¾å±ä¸æ·»å åªäºå 容ã
è¥è¦ç¼è¾å½±çåªè¾ï¼è¯·æ§è¡ä»¥ä¸æä½ï¼
å°å¾å±1 éå½å为å¨ä½ï¼ç¶åéæ©ç¬¬ä¸å¸§ã
æå¼å¨ä½é¢æ¿ï¼ç¶åæ·»å stop() å½æ°ï¼å¦ä¸æç¤ºï¼ stop();
ä¸è¦åæ¤å¸§æ·»å ä»»ä½å¾å½¢èµæºã
æ·»å ä¸ä¸ªå为 Assets çå¾å±ã
å¨ Assetså¾å±ä¸ï¼éæ©ç¬¬äºå¸§å¹¶æå ¥ä¸ä¸ªç©ºç½å ³é®å¸§ã
ç°å¨è¯¥å¾å±ä¸æ两个空ç½å ³é®å¸§ã
请æ§è¡ä»¥ä¸æä½ä¹ä¸ï¼
·å¦æç»ä»¶å ·æå®ä¹è¾¹çåºåçå¯è§èµæºï¼åå°è¿äºå 件æå°ç¬¬ä¸å¸§ä¸å¹¶è¿è¡éå½å®æã
·å¦æç»ä»¶å¨è¿è¡æ¶åå»ºå ¶ææå¯è§èµæºï¼è¯·å°ä¸ä¸ª BoundingBox å 件æå°èå°ä¸ç¬¬ä¸å¸§ä¸ï¼éå½è°æ´å ¶å¤§å°ï¼ç¶åå°å®ä¾å½å为 boundingBox_mcã该å 件ä½äº Configuration/ComponentFLAæ件夹ä¸ç StandardComponents.fla çåºä¸ã
å¦æè¦æ©å±ç°æç»ä»¶ï¼è¯·å°è¯¥ç»ä»¶çä¸ä¸ªå®ä¾åä»»ä½å ¶å®åºç±»æ¾å¨ Assetså¾å±ç第äºå¸§ä¸ã
为æ¤ï¼è¯·ä»ç»ä»¶é¢æ¿ä¸éæ©è¯¥å 件并å°å®æå°èå°ä¸ãå¦æè¦æ©å±ä¸ä¸ªåºç±»ï¼è¯·æå¼ Configuration/ComponentFLA æ件夹ä¸ç StandardComponents.flaï¼ç¶åå°è¯¥ç±»ä»åºä¸æå°èå°ä¸ã
注æ
å° UIComponent æå°ç»ä»¶åºæ¶ï¼ä¼æ´æ¹åºä¸çæ件夹å±æ¬¡ç»æãå¦ææç®å次使ç¨åºï¼æå°å®ç¨äºå ¶å®ç»ä»¶ç»ï¼å¦ç¬¬ 2 çç»ä»¶ï¼ï¼åºéæ°ç»ç»æ件夹å±æ¬¡ç»æï¼ä»¥ä¾¿ä¸ StandardComponents.fla åºå¹é ï¼ä»è使åºç»ç»æåºï¼é¿å å 件éå¤ã
å¨ç»ä»¶ç Assetså¾å±ç第äºå¸§æ·»å ç±è¯¥ç»ä»¶ä½¿ç¨çææå¾å½¢èµæºã
ç»ä»¶æ使ç¨çä»»ä½èµæºï¼æ 论æ¯å ¶å®ç»ä»¶è¿æ¯ä½å¾ä¹ç±»çåªä½ï¼é½åºå ·æä¸ä¸ªæ¾ç½®å¨ Assets å¾å±ç第äºå¸§ä¸çå®ä¾ã
å®æçå 件çèµ·æ¥åºä¸ä¸å¾ç¸ä¼¼ï¼
å½±çåªè¾å ä»¶å¿ é¡»å¨ç»ä»¶å®ä¹å¯¹è¯æ¡ä¸é¾æ¥å° ActionScript ç±»æ件ãè¿æ¯ Flash äºè§£å¨ä½å¤æ¥æ¾ç»ä»¶å æ è®°çæ¹å¼ãï¼æå ³å æ è®°ç详ç»ä¿¡æ¯ï¼è¯·åé æ·»å ç»ä»¶å æ°æ®ãï¼æ¨ä¹å¯ä»¥å¨ç»ä»¶å®ä¹å¯¹è¯æ¡ä¸éæ©å ¶å®é项ã
å°å½±çåªè¾å®ä¹ä¸ºç»ä»¶ï¼
å¨åºä¸éæ©å½±çåªè¾ï¼ç¶åä»åºä¸ä¸æèåä¸éæ©ç»ä»¶å®ä¹ï¼Windowsï¼å³é®åå»ï¼Macï¼æä½ Control é®åå»ï¼ã
å¿ é¡»è¾å ¥ä¸ä¸ª AS 2.0 ç±»ã
å¦æ该类å¨å ä¸ï¼åè¾å ¥å®æ´çå å称ãå¦æéè¦ï¼å¯ä»¥å¨ç»ä»¶å®ä¹å¯¹è¯æ¡ä¸æå®å ¶å®é项ï¼
åå»å å· (+) æé®å¯å®ä¹åæ°ã
æ¤ä¸ºå¯éæä½ãæ好çåæ³æ¯å¨ç»ä»¶çç±»æ件ä¸ä½¿ç¨å æ°æ®Inspectable æ è®°æ¥æå®åæ°ãå¦ææªæå® ActionScript 2.0 ç±»ï¼åå¨è¿æ¯ä¸ä¸ªå¨ç»ä»¶æ£æ¥å¨ä¸ææ¾ç SWFæ件ãæ¨å¯ä»¥å°å®åµå ¥ç»ä»¶ FLAæ件ææµè§å°ä¸ä¸ªå¤é¨ SWFæ件ã
æå®å®æ¶é¢è§ã
è¿æ¯ä¸ä¸ªå¤é¨æåµå ¥ç SWFæ件ãæ¤å¤æ éæå®å®æ¶é¢è§ï¼å°ä¸ä¸ªè¾¹æ¡æ·»å å°ç»ä»¶å½±çåªè¾ï¼Flash å³ä¼ä¸ºæ¨å建å®æ¶é¢è§ã请åé å建ç»ä»¶å½±çåªè¾ã
è¾å ¥æè¿°ã
å¨ Flash MX ä¸ï¼ç±äºåèé¢æ¿å·²å é¤ï¼å æ¤ä¸å»ºè®®ä½¿ç¨æè¿°å段ãæä¾æ¤å段ç®çå¨äºä»¥ Flash MX æ ¼å¼ä¿å FLAæ件æ¶çååå ¼å®¹æ§ã
éæ©å¾æ ã
æ¤é项æå®ä¸ä¸ª PNGæ件æ¥ç¨ä½ç»ä»¶çå¾æ ãå¦æå¨ ActionScript 2.0 ç±»æ件ä¸æå® IconFileå æ°æ®æ è®°ï¼æä½³åæ³ï¼ï¼åä¼å¿½ç¥è¯¥å段ã
éæ©æåæ¶éæ©å®ä¾ä¸åæ°å·²éå®ã
å¦æåæ¶éæ©æ¤é项ï¼ç¨æ·åå¯ä»¥åæ¯ä¸ªç»ä»¶å®ä¾æ·»å ä¸åäºç»ä»¶åæ°çåæ°ãé常åºéæ©æ¤è®¾ç½®ãæ¤é项æä¾ä¸ Flash MX çååå ¼å®¹æ§ã
æå®æ¾ç¤ºå¨ç»ä»¶é¢æ¿ä¸çå·¥å ·æ示ã
å建 ActionScript ç±»æ件
ææç»ä»¶å 件é½é¾æ¥å° ActionScript 2.0 ç±»æ件ãï¼æå ³é¾æ¥çä¿¡æ¯ï¼è¯·åé å建ç»ä»¶å½±çåªè¾ãï¼
è¦ç¼è¾ ActionScript ç±»æ件ï¼æ¨å¯ä»¥ä½¿ç¨ Flashãä»»ä½ææ¬ç¼è¾å¨ï¼ä¹å¯ä»¥ä½¿ç¨ä»»ä½éæå¼åç¯å¢(IDE)ã
å¤é¨ ActionScript ç±»æ©å±å ¶å®ç±»ï¼æ 论该类æ¯ç¬¬ 2 çç»ä»¶ã第 2 çåºç±»è¿æ¯ ActionScript MovieClip ç±»ï¼ãæ¨åºæ©å±æå建çåè½ä¸è¦å建çç»ä»¶æ类似çç±»ãåªè½ä»ä¸ä¸ªç±»ç»§æ¿ï¼æ©å±ï¼ãActionScript 2.0 ä¸å 许å¤ç»§æ¿ã
æ¬èå å«ä»¥ä¸ä¸»é¢ï¼
ç»ä»¶ç±»æ件çç®å示ä¾
ç»ä»¶ç±»æ件æ¦è¿°
å®ä¹ç±»åå ¶è¶ ç±»
æ è¯ç±»ãå 件åææè å称
å®ä¹åé
ä½¿ç¨ getter/setter æ¹æ³å®ä¹åæ°
æ·»å ç»ä»¶å æ°æ®
å®ä¹ç»ä»¶åæ°
å ³äºæ ¸å¿å½æ°
åéäºä»¶
å ³äºæå®å¤è§
å ³äºæ ·å¼
ç»ä»¶ç±»æ件çç®å示ä¾
ä¸é¢æ¯ç±»æ件çä¸ä¸ªç®å示ä¾ï¼è¯¥ç±»æ件å为 <CITE style=BACKGROUND: none transparent scroll repeat 0% 0% class=highlight highlight=true>MyComponent</CITE>ãå¦æè¦å建æ¤ç»ä»¶ï¼åºå°è¯¥ç±»æ件é¾æ¥å° Flash ä¸çç»ä»¶å½±çåªè¾ã
æ¤ç¤ºä¾å å«ä» UIComponent 类继æ¿çç»ä»¶ MyComponent è³å°åºæçä¸ç»å¯¼å ¥ãæ¹æ³å声æãMyComponentsæ件ä¿åå¨ myPackage æ件夹ä¸ã
ãEvent(eventName)ã
// å¯¼å ¥å ã
import mx.core.UIObject;
// 声æ类并ä»ç¶ç±»æ©å±ã
classmypackage.MyComponent extends UIObject {
// æ è¯æ¤ç±»æç»å®å°çå 件å称ã
static var symbolName:String = mypackage.MyComponent;
// æ è¯å 件ææè çå®å ¨éå®å å称ã
static var symbolOwner:Object = Object(mypackage.MyComponent);
// æä¾className åéã
varclassName:String = MyComponent;
// å®ä¹ä¸ä¸ªç©ºæé å½æ°ã
function MyComponent() {
}
// è°ç¨ç¶çº§ç init() æ¹æ³ã
// éèè¾¹æ¡ï¼è¯¥è¾¹æ¡
// ä» å¨åä½æ¶ä½¿ç¨ã
function init():Void {
super.init();
boundingBox_mc.width = 0;
boundingBox_mc.height = 0;
boundingBox_mc.visible = false;
}
function createChildren():Void{
// è°ç¨ createClassObject æ¥å建å对象ã
size();
invalidate();
}
function size(){
// ç¼åå¤ç大å°ç代ç ã
super.size();
invalidate();
}
function draw(){
// ç¼åå¤çå¯è§å表示形å¼ç代ç ã
super.draw();
}
}
ç»ä»¶ç±»æ件æ¦è¿°
以ä¸æ¯ä»ç»å¦ä½ä¸ºç»ä»¶ç±»å建 ActionScriptæ件ç常è§è¿ç¨ãæ ¹æ®æå建ç»ä»¶ç±»åçä¸åï¼æäºæ¥éª¤æ¯å¯éæ¥éª¤ã
ç¼åç»ä»¶ç±»æ件
ï¼å¯éï¼å¯¼å ¥ç±»ãï¼è¯·åé å¯¼å ¥ç±»ï¼ã
æ§è¡è¿ä¸æ¥éª¤ï¼åæ éååºå ï¼ä¾å¦ï¼ä½¿ç¨ Button èä¸æ¯ mx.controls.Buttonï¼å³å¯å¼ç¨ç±»ã 使ç¨classå ³é®åå®ä¹ç±»ï¼ä½¿ç¨ extend å ³é®åæ©å±ç¶ç±»ãï¼è¯·åé å®ä¹ç±»åå ¶è¶ ç±»ï¼ã
å®ä¹ symbolNameãsymbolOwner åclassName åéãï¼è¯·åé æ è¯ç±»ãå 件åææè å称ï¼ã
åªæ第 2 çç»ä»¶æéè¦è¿äºåéã
å®ä¹æååéãï¼è¯·åé å®ä¹åéï¼ã
è¿äºåéå¯ç¨äº getter/setter æ¹æ³ã
å®ä¹ä¸ä¸ªæé å½æ°ãï¼è¯·åé å ³äºæé å½æ°ï¼ã
å®ä¹ init() æ¹æ³ãï¼è¯·åé å®ä¹ init() æ¹æ³ï¼ã
å¦æç±»æ©å±çæ¯ UIComponentï¼åå建类æ¶ä¼è°ç¨æ¤æ¹æ³ãå¦æç±»æ©å±çæ¯ MovieClipï¼åä»æé å½æ°è°ç¨æ¤æ¹æ³ã
å®ä¹ createChildren() æ¹æ³ãï¼è¯·åé å®ä¹ createChildren() æ¹æ³ï¼ã
å¦æç±»æ©å±çæ¯ UIComponentï¼åå建类æ¶ä¼è°ç¨æ¤æ¹æ³ãå¦æç±»æ©å±çæ¯ MovieClipï¼åä»æé å½æ°è°ç¨æ¤æ¹æ³ã
å®ä¹ size() æ¹æ³ãï¼è¯·åé å®ä¹ size() æ¹æ³ï¼ã
å¦æç±»æ©å±çæ¯ UIComponentï¼åè°æ´ç»ä»¶å¤§å°æ¶è°ç¨æ¤æ¹æ³ãæ¤å¤ï¼å¨åä½æ¶è°æ´ç»ä»¶çå®æ¶é¢è§å¤§å°æ¶ä¹ä¼è°ç¨æ¤æ¹æ³ã
å®ä¹ draw() æ¹æ³ãï¼è¯·åé å ³äºæ æï¼ã
å¦æç±»æ©å±çæ¯ UIComponentï¼åç»ä»¶æ ææ¶è°ç¨æ¤æ¹æ³ã
æ·»å ä¸ä¸ªå æ°æ®æ è®°å声æãï¼è¯·åé æ·»å ç»ä»¶å æ°æ®ï¼ã
æ·»å æ è®°å声æå¯ä½¿ getter/setter å±æ§æ¾ç¤ºå¨ Flash çå±æ§ æ¹æ³ãï¼è¯·åé ä½¿ç¨ getter/setter æ¹æ³å®ä¹åæ°ï¼ã
ï¼å¯éï¼ä¸ºç»ä»¶ä¸ä½¿ç¨çæ¯ä¸ªå¤è§å ç´ /é¾æ¥å建åéãï¼è¯·åé å ³äºæå®å¤è§ï¼ã
æ§è¡è¿ä¸æ¥éª¤ï¼ç¨æ·åå¯éè¿æ´æ¹ç»ä»¶ä¸çåæ°æ¥è®¾ç½®ä¸åçå¤è§å ç´ ã
å¨ç»ä»¶å ç»åç°æç»ä»¶
å¨æ¬èä¸ï¼æ¨å°æ建ä¸ä¸ªå¯ä»¥ç»å LabelãTextInput å Button ç»ä»¶çç®åç LogIn ç»ä»¶ãæ¬æç¨æ¼ç¤ºå¦ä½å¨æ°ç»ä»¶ä¸éè¿æ·»å æªç»ç¼è¯ç Flash (FLA) åºå 件æ¥ç»åç°æç»ä»¶ãå·²å®æçç»ä»¶æ件LogIn.flaãLogIn å LogIn.swf ä½äºç¡¬çä¸ç以ä¸ç¤ºä¾æ件夹ä¸ï¼
å¨ Windows ä¸ï¼the C:Program FilesMacromediaFlash 8Samples and TutorialsSamplesComponentsLogin folderã
å¨ Macintosh ä¸ï¼HD/Applications/Macromedia Flash 8/Samples and Tutorials/Samples/Components/Loginæ件夹ã
LogIn ç»ä»¶æä¾è¾å ¥å称åå¯ç ççé¢ãLogIn ç API æ两个å±æ§ name å passwordï¼ç¨æ¥è®¾ç½®åè·åå称åå¯ç TextInput å段ä¸çå符串å¼ãLogIn ç»ä»¶è¿å°å¨ç¨æ·åå»æ 记为LogInçæé®æ¶åéä¸ä¸ªclickäºä»¶ã
å建 LogIn Flash (FLA) æ件
LogIn ç±»æ件
æµè¯åå¯¼åº LogIn ç»ä»¶
导åºåååç»ä»¶
Flash å°ç»ä»¶å¯¼åºä¸ºç»ä»¶å ï¼SWC æ件ï¼ãç»ä»¶å¯ä»¥åå为 SWCæ件æ FLA æ件ãï¼æå ³å°ç»ä»¶ä½ä¸º FLA ååçä¿¡æ¯ï¼è¯·åé Macromedia DevNet ä¸çæç« ï¼
ååç»ä»¶çæ好æ¹æ³æ¯å°å®å¯¼åºä¸º SWCæ件ï¼è¿æ¯å 为 SWC æ件å å«å ¨é¨ ActionScriptãSWF æ件以å使ç¨ç»ä»¶æéçå ¶å®å¯éæ件ãå¦æè¦åæ¶å¼åæ个ç»ä»¶å使ç¨è¯¥ç»ä»¶çåºç¨ç¨åºï¼å SWCæ件ä¹ååæç¨ã
SWCæ件å¯ç¨äºååå¨ Macromedia Flash 8ãMacromedia Dreamweaver MX å Macromedia Director MX ä¸ä½¿ç¨çç»ä»¶ã
æ 论å¼åç»ä»¶çç®çæ¯ä¸ºäºä¾ä»äººä½¿ç¨è¿æ¯èªå·±ä½¿ç¨ï¼å¯¹ä½ä¸ºç»ä»¶å¼åçæ£å¨è¿è¡é¨åç SWCæ件è¿è¡æµè¯é½é常éè¦ãä¾å¦ï¼ç»ä»¶ç FLAæ件ä¸ä¸ä¼åºç°çé®é¢å¯è½ä¼å¨ SWC æ件ä¸åºç°ã
ç»ä»¶å¼åçæåä¸äºæ¥éª¤
ç»ä»¶å建å®æ并åå¤å¥½æå ä¹åï¼å³å¯æ·»å å¾æ åå·¥å ·æ示ãè¦ç¡®ä¿å·²å®æææå¿ éçæ¥éª¤ï¼è¯·åé ç»ä»¶å¼åæ£æ¥å表ã
æ¬èå å«ä»¥ä¸ä¸»é¢ï¼
· æ·»å å¾æ
· æ·»å å·¥å ·æ示
· ç»ä»¶å¼åæ£æ¥å表
æ·»å å¾æ
æ¨å¯ä»¥æ·»å å¨ Flash åä½ç¯å¢çç»ä»¶é¢æ¿ä¸è¡¨ç¤ºç»ä»¶çå¾æ ã æ·»å ç»ä»¶çå¾æ ï¼
· å建æ°å¾åã
å¾åå¿ é¡»ä¸º x åç´ ï¼å¹¶ä¸å¿ é¡»ä¿å为 PNG æ ¼å¼ãå®ç Alpha éæåº¦å¿ é¡»æ¯ 8 ä½ï¼å·¦ä¸è§çåç´ å¿ é¡»æ¯éæçï¼ä»¥æ¯æé®ç½©ã
· å¨ç»ä»¶ ActionScript ç±»æ件ä¸çç±»å®ä¹ä¹åæ·»å 以ä¸å®ä¹ï¼ ãIconFile(component_name.png)ã
· å°å¾åæ·»å å° FLAæ件æå¨çç®å½ãå¨å¯¼åº SWCæ件æ¶ï¼Flash å°å¨å½æ¡£çæ ¹çº§å å«è¯¥å¾åã
æ·»å å·¥å ·æ示
å½ç¨æ·å°é¼ æ æ»å° Flash åä½ç¯å¢ä¸ç»ä»¶é¢æ¿ä¸çç»ä»¶å称æå¾æ ä¸æ¶ï¼å·¥å ·æ示就ä¼æ¾ç¤ºåºæ¥ã
å¨ç»ä»¶å®ä¹å¯¹è¯æ¡ä¸å¯ä»¥å®ä¹å·¥å ·æ示ãå¯ä»¥ä»ç»ä»¶ FLA æ件çåºé项èå访é®æ¤å¯¹è¯æ¡ï¼Windowsï¼å³é®åå»ï¼Macï¼æä½ Control é®åå»ï¼ã
å¨ç»ä»¶å®ä¹å¯¹è¯æ¡ä¸æ·»å å·¥å ·æ示ï¼
å¨ Flash ä¸æå¼ç»ä»¶ç FLAæ件æ¶ï¼ç¡®ä¿åºå¯è§ï¼çªå£>åºèåï¼ã
åå»åºé项èåï¼Windowsï¼å³é®åå»ï¼Macï¼æä½ Control é®åå»ï¼ã
åºé项èåä½äºåºæ é¢æ çå³ä¾§ï¼æ¾ç¤ºä¸ºä¸ä¸ªä¸æ¡çº¿ååä¸ä¸è§å½¢çå¾æ ã
éæ©ç»ä»¶å®ä¹é项ã
å¨ç»ä»¶å®ä¹å¯¹è¯æ¡çé项ä¸ï¼éæ©æ¾ç¤ºå¨'ç»ä»¶'é¢æ¿ä¸ã
å·¥å ·æ示ææ¬æ¡å³ä¼å为å¯ç¼è¾ææ¬æ¡ã
å¨å·¥å ·æ示ææ¬æ¡ä¸è¾å ¥ç»ä»¶çå·¥å ·æ示ææ¬ã
åå»ç¡®å®ä»¥ä¿åæ´æ¹ã
FUTU六语言秒合约交易所源码详细搭建教程
FUTU六语言秒合约交易所源码提供了一个前后端分离的解决方案,前端Vue已编译,是用于搭建秒合约交易所的二开版本。尽管功能设计较为基础,其后台功能却相当强大且强大,UI设计新颖,已通过实测,基本未发现明显问题。
该系统K线和行情数据来源于外部API,对服务器性能要求不高。秒合约部分需要根据具体需求调整外链和变量,且前端代码已经过编译处理。对于初次搭建者,本教程将为您详细介绍如何配置与部署。
搭建过程需要以下环境与组件:nginx、php7.3、mysql5.6、redis,同时确保安装了如下PHP扩展:fileinfo、opcache、memcache、redis、imagemagick、imap、exif、intl、xsl。禁用所有非必要的函数或处理报错函数,建议全新安装系统服务器,避免其他服务干扰。确保PHP和相关组件正确配置与启动,如未报错则搭建成功。
搭建步骤包括但不限于:配置Nginx伪静态规则、开放特定端口、安装Elasticsearch(ES)环境,导入源码与数据库,并进行环境初始化。需注意的是,反向代理配置需要调整socket.io后端IP和端口。同时,计划任务脚本涵盖了日常运营、更新与维护任务,如行情与K线数据更新、交易对获取、用户余额更新等,确保系统自动执行关键功能。
此源码提供了一个灵活的基础框架,支持根据业务需求进行扩展与定制,如市场数据导入、交易对支持、定时任务执行等。通过合理配置与调整,可以构建功能丰富、运行稳定的秒合约交易所。
UGUI 源码笔记(一)文件结构和部分组件使用
探讨UGUI源码之谜:深度解析文件结构与关键组件
本文将为您揭秘Unity3D UI系统UGUI的底层细节。
部分一:源码与实现解析
UGUI是基于三维网格系统构建的UI库,源码地址。
构建图元时,先生成一个方形网格,绑定材质球,后者存放要显示的图像。性能挑战:材质球和网格渲染过量,drawcell时间长。
部分二:源码结构探索
以Unity版本.1为例,文件结构被清晰地划分。
Canvas作为核心组件,类比为画布,内置了提升效率的合并网格功能。
Render Mode描述了Canvas的渲染模式;Canvas Scale组件允许您调整Canvas中元素的比例。
UI Scale Mode提供了针对屏幕大小的适应性设置,包括ScreenMatchMode.MatchWidthOrHeight选项。
以设备与游戏屏幕比例为例,计算合适的MatchWidthOrHeight值,通过对数空间转换确保视觉平衡。
部分三:UI元素组件剖析
Image与RawImage组件是展示的基石。
它们之间有显著区别:小尺寸图像适合使用Image,大尺寸则推荐RawImage以提高性能。
当处理大量相似类型但数量较少的时,通常选择RawImage,以减少内存消耗。
部分四:RectTransform:UI元素摆放的秘密
尽管RectTransform属于Unity内部类,但在UGUI中扮演着核心角色,用于定义UI元素的位置、大小与旋转。
锚点Anchors决定子节点的对齐,设置时以父节点的比例计算。
Anchors Presets工具提供了常用的布局选择,连带调整Pivot与位置时更为便捷。
Pivot作为物体自身的支点,影响物体的旋转、缩放与位置调整。
搭建源码调试环境—RocketMQ源码分析(一)
搭建源码调试环境,深入分析 RocketMQ 的内部运行机制。理解 RocketMQ 的目录结构是搭建调试环境的第一步,有助于我们快速定位代码功能和问题。 目录结构主要包括: acl:权限控制模块,用于指定话题权限,确保只有拥有权限的消费者可以进行消费。 broker:RocketMQ 的核心组件,负责接收客户端发送的消息、存储消息并传递给消费端。 client:包含 Producer、Consumer 的代码,用于消息的生产和消费。 common:公共模块,提供基础功能和服务。 distribution:部署 RocketMQ 的工具,包含 bin、conf 等目录。 example:提供 RocketMQ 的示例代码。 filter:消息过滤器。 namesvr:NameServer,所有 Broker 的注册中心。 remoting:远程网络通信模块。 srvutil:工具类。 store:消息的存储机制。 style:代码检查工具。 tools:命令行监控工具。 获取 RocketMQ 源码:从 Github 下载最新版本或选择其他版本。遇到下载困难时,可留言或私信寻求帮助。 导入源码到 IDE 中,确保 Maven 目录正确,刷新并等待依赖下载完成。 启动 RocketMQ 的 NameServer 和 Broker,配置相关参数,如环境变量、配置文件等。确保正确启动后,通过查看启动日志检查运行状态。 进行消息生产与消费测试,使用源码自带的示例代码进行操作。设置 NameServer 地址后,启动 Producer 和 Consumer,验证消息成功发送与消费。 使用 RocketMQ Dashboard 监控 RocketMQ 运行情况,持续优化和调试。OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!
OpenHarmony的dev-tool更新让在Windows下搭建鸿蒙系统开发环境变得便捷,尤其对于MCU开发者来说。本文将带你从头开始,详细讲解如何在Windows上搭建dev-tool环境,降低学习OpenHarmony的门槛。首先,理解OpenHarmony的编译构建框架至关重要,它基于GN和Ninja构建,组织平台、子系统和组件,构建过程类似用针线制作衣服,通过命令行驱动,GN生成Ninja文件指导构建。
在2.0版本中,大部分组件已采用GN和Ninja,未来将全面替代。构建流程包括设置和编译两个步骤,通过命令行工具如"hb set"和"hb build"来操作。具体过程可在weharmonyos.com的文档中获取更详尽信息。
环境搭建则需要准备GNU环境,因为OpenHarmony主要依赖GNU工具链,包括在Windows上安装对应版本的Python、Node.js和hpm,以及Visual Studio Code和DevEco Device Tool。其中,Python和Node.js的安装需注意版本选择,而DevEco Device Tool的安装需注意避免中文字符在用户名中,且可能需要设置npm代理。
针对HiV开发板,需要下载专用源代码,设置正确的编译工具链,并在DevEco Device Tool中进行编译操作。整个过程包括设置工具链、打开工程、执行编译任务,直至看到"SUCCESS"。目前仅支持轻量型系统和Hi开发板,后续将扩展支持其他开发板。
现在,你已经具备了在Windows上搭建OpenHarmony开发环境的完整流程,开始你的鸿蒙OS学习之旅吧!