咸鱼教程Egret中可长按复制的文本(例如复制优惠码)

Posted gamedaybyday

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了咸鱼教程Egret中可长按复制的文本(例如复制优惠码)相关的知识,希望对你有一定的参考价值。

一 实际效果
二 实现原理
三 源码下载

在egret中实现长按复制文本效果,一般用于复制优惠码什么的。

一 实际效果

技术分享图片       技术分享图片 


二 实现原理

在egret的游戏元素都是绘制在canvas上的,我们在canvas上覆盖一个<p>标签,来实现长按复制的效果。

技术分享图片 

1 首先在index.html中为egret所在div赋值id = gameDiv

技术分享图片 


2 获取gameDiv,在gameDiv上创建一个<p>标签

[Actionscript3] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
//在egret的div下创建<p>
        var gameDiv = document.getElementById("gameDiv");
        this.p = document.createElement("p");
        gameDiv.appendChild(this.p);
 
        //设置<p>属性
        this.p.style.border = "0px";
        this.p.style.backgroundColor = "transparent";
        this.p.style.position = "absolute";
        this.p.style.fontSize = this.fontSize + "px"//fontSize是将这个功能封装后,可自定义的文本大小。具体看源码。
        this.p.style.display = "none";
        this.p.style.color = "#000000";
        this.p.style.textAlign = "center";



3 适配<p>标签
由于egret中组件是在canvas上,而<p>标签是在浏览器页面。
所以egret中的1像素和<p>的1像素是不一样的。
我们这里利用stage的高宽和document.body.client的高宽比例,来进行<p>标签在canvas上的适配。(这个点比较重要技术分享图片)

不知道怎么回事,代码含不良信息粘不了...删了才能发帖成功....握草。技术分享图片

4 在egret使用封装好的HtmlText类
我把这个功能封装了下,使用方式如下:

[Actionscript3] 纯文本查看 复制代码
1
2
3
var htmlText:HTMLText = new HTMLText();  //新建p标签
htmlText.setValue("123456");                     //设置p文本内容
htmlText.setPosition(0,100, 640, 30); //设置p在canvas上位置和高宽

   



源码









































以上是关于咸鱼教程Egret中可长按复制的文本(例如复制优惠码)的主要内容,如果未能解决你的问题,请参考以下文章

咸鱼教程Egret实现摇一摇功能

咸鱼教程TextureMerger1.6.6 一:Egret MovieClip的制作和使用

咸鱼教程微信网页授权(获取用户头像昵称等)

禁止H5长按复制div 中的文本

小程序 长按复制文本

iOS14复制粘贴教程