直播平台源代码,分布式涂鸦

 直播平台源代码,分布式涂鸦

 

1
 transforAbility: async function transfer() {<br>    try {<br>        await FeatureAbility.continueAbility(0,null)<br>    } catch (e) {<br>        console.error("迁移出错:" + JSON.stringify(e))<br>    }<br>},<br>onStartContinuation: function onStartContinuation() {<br>//判断当前的状态是不是适合迁移<br>    console.error("trigger onStartContinuation");<br>    return true;<br>},<br>onCompleteContinuation: function onCompleteContinuation(code) {<br>//迁移操作完成,code返回结果<br>    console.error("trigger onCompleteContinuation: code = " + code);<br>    return true<br>},<br>onSaveData: function onSaveData(saveData) {<br>//数据保存到savedData中进行迁移。<br>    saveData.points = this.sharePoints;<br>    return true<br>},<br>onRestoreData: function onRestoreData(restoreData) {<br>//收到迁移数据,恢复。<br>    this.sharePoints = restoreData.points;<br>    return true<br>}

这里需要注意,如果需要实现应用流转,则onStartContinuation、onCompleteContinuation、onSaveData和onRestoreData的返回值都必须为true,否则无法流转和恢复数据。

 

Ability在流转后,数据需要恢复过来,所以需要在绘制坐标的时候,把所有的坐标保存到一个数组中,sharePoints是用来保存touchMove中的所有坐标信息的数组,如代码示例2所示。

 

代码示例2 实现流转

 

1
<br>export default {<br>    data: {<br>        cxt: {},<br>        sharePoints: [],<br>lineHeight:3<br>    },<br>   onShow() {<br>        this.cxt = this.$element("board").getContext("2d");<br>//恢复数据后,重新绘制<br>        if (this.sharePoints.length > 0) {<br>            for (let index = 0; index < this.sharePoints.length; index++) {<br>                this.paintCanvas(this.sharePoints[index])<br>            }<br>        }<br>    },<br>//Touch start事件<br>    painStart(e) {<br>        this.isShow = true;<br>        var p = {<br>            x: e.touches[0].localX,<br>            y: e.touches[0].localY,<br>            c: this.selColor,<br>            flag: "start"<br>        }<br>       this.sharePoints.push(p)<br>       //本地绘制<br>       this.paintCanvas(p)<br> },<br>//Touch move事件<br> paint(e) {<br> <br>        //坐标<br>        var p = {<br>            x: e.touches[0].localX,<br>            y: e.touches[0].localY,<br>            c: this.selColor,<br>            flag: "line"<br>        }<br>        this.sharePoints.push(p)<br>this.paintCanvas(p)<br>},<br>//Touch事件结束<br> paintEnd(e) {<br>    this.cxt.closePath();<br>},<br> //本地绘制自由线条<br>paintCanvas(point) {<br>  if (point.flag == "start") {<br>     this.cxt.beginPath();<br>     this.cxt.strokeStyle = point.c<br>     this.cxt.lineWidth = this.lineHeight<br>     this.cxt.lineCap = "round"<br>     this.cxt.lineJoin = "round"<br>     this.cxt.moveTo(point.x,point.y);<br>   } else if (point.flag == "line") {<br>     this.cxt.lineTo(point.x,point.y);<br>     this.cxt.stroke()<br> }<br>},<br> <br>//启动流转<br>    setUpRemote: async function transfer() {<br>        try {<br>            await FeatureAbility.continueAbility(0,null)<br>        } catch (e) {<br>            console.error("迁移出错:" + JSON.stringify(e))<br>        }<br>    },<br>    onStartContinuation: function onStartContinuation() {<br>//判断当前的状态是不是适合迁移<br>        return true;<br>    },<br>    onCompleteContinuation: function onCompleteContinuation(code) {<br>//迁移操作完成,code返回结果<br>        return true<br>    },<br>    onSaveData: function onSaveData(saveData) {<br>//数据保存到savedData中进行迁移。<br>        saveData.points = this.sharePoints;<br>        return true<br>    },<br>    onRestoreData: function onRestoreData(restoreData) {<br>//收到迁移数据,恢复。<br>        this.sharePoints = restoreData.points;<br>        return true<br>    }<br>}

 

 以上就是直播平台源代码,分布式涂鸦的全部代码,更多内容请关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-10-20 短视频平台源码,动态上传的图片以九宫格形式展示
2021-10-20 直播app系统源码,在 Flutter 中更改文本的字体系列
2021-10-20 短视频平台源码,登录界面插入背景图片
点击右上角即可分享
微信分享提示