网站建设有几大板块当前互联网发展现状

张小明 2026/1/2 21:32:36
网站建设有几大板块,当前互联网发展现状,成都seo培训班,制作企业网页的公司Flutter 不只是写 App —— 用代码打造一个“会说话”的桌面宠物** 当我们谈论 Flutter#xff0c;大多数人想到的是“跨平台 App 开发”、“Material Design”或“高性能 UI”。但今天#xff0c;我们不走寻常路 —— 我要用 Flutter 构建一个运行在桌面端的“会说话的小狐…Flutter 不只是写 App —— 用代码打造一个“会说话”的桌面宠物**当我们谈论 Flutter大多数人想到的是“跨平台 App 开发”、“Material Design”或“高性能 UI”。但今天我们不走寻常路 —— 我要用Flutter 构建一个运行在桌面端的“会说话的小狐狸”宠物应用它能随机弹出气泡对话、眨眼卖萌还能随着鼠标靠近做出反应。这不是又一篇“计数器教程”而是一次对 Flutter 能力边界的探索谁说 Flutter 只能做传统界面它也能成为创意表达的画布。 项目亮点使用 Flutter 构建无边框透明窗口桌面应用实现动画角色 气泡对话利用dart:math和Timer做行为逻辑支持鼠标互动接近时转头完全自定义绘制与布局这不仅是一个玩具更是展示 Flutter 在非传统 UI 场景下的创造力。✅ 环境准备确保你已安装flutter desktopenable-dwindows,macos,linux创建项目并启用桌面支持后我们直接进入核心编码。 第一步设计我们的小狐狸我们将使用一张 PNG 图片作为小狐狸形象你可以替换成任何你喜欢的角色。假设图片名为fox.png放在assets/images/fox.png。pubspec.yaml 配置资源flutter:assets:-assets/images/fox.png 第二步写一个浮动对话气泡我们来做一个从头顶飘出的对话框带圆角和箭头。// widgets/speech_bubble.dartimportpackage:flutter/material.dart;classSpeechBubbleextendsStatelessWidget{finalStringmessage;finalDurationduration;constSpeechBubble({super.key,requiredthis.message,this.durationconstDuration(seconds:3)});overrideWidgetbuild(BuildContextcontext){returnAnimatedOpacity(opacity:1.0,duration:constDuration(milliseconds:300),child:Container(padding:constEdgeInsets.symmetric(horizontal:12,vertical:8),decoration:BoxDecoration(color:Colors.black.withOpacity(0.7),borderRadius:BorderRadius.circular(16),boxShadow:[BoxShadow(color:Colors.black.withOpacity(0.3),blurRadius:6,)],),child:Text(message,style:constTextStyle(color:Colors.white,fontSize:14),),),);}}️ 第三步主界面 —— 透明无边框 角色显示我们要让窗口没有标题栏并且背景透明。修改 main.dart// main.dartimportpackage:flutter/material.dart;importpackage:window_manager/window_manager.dart;voidmain()async{WidgetsFlutterBinding.ensureInitialized();awaitwindowManager.ensureInitialized();// 设置窗口配置仅桌面有效WindowOptionswindowOptionsconstWindowOptions(size:Size(200,200),center:true,skipTaskbar:true,// 不显示在任务栏transparent:true,// 透明背景frameless:true,// 无边框);windowManager.waitUntilReadyToShow(windowOptions,()async{awaitwindowManager.show();awaitwindowManager.focus();});runApp(constPetApp());}⚠️ 注意需要添加依赖window_manager: ^0.4.0来控制原生窗口行为。 第四步小狐狸大脑 —— 行为逻辑我们现在写一个状态类让它每隔几秒“说点什么”。// screens/pet_screen.dartimportdart:async;importdart:math;importpackage:flutter/material.dart;import../widgets/speech_bubble.dart;classPetScreenextendsStatefulWidget{constPetScreen({super.key});overrideStatePetScreencreateState()_PetScreenState();}class_PetScreenStateextendsStatePetScreenwithSingleTickerProviderStateMixin{lateAnimationController_blinkController;double mouseX0,mouseY0;bool isLookingAtMousefalse;String?currentMessage;Timer?_messageTimer;finalListStringmessages[今天天气真好~,你瞅啥,摸摸头会变强哦,我饿了有吃的吗,别靠太近害羞了啦,呼噜呼噜…睡着了,];overridevoidinitState(){super.initState();// 眨眼动画眼睛开合_blinkControllerAnimationController(vsync:this,duration:constDuration(milliseconds:150),);// 定时说话_startRandomMessaging();// 监听鼠标移动通过全局事件windowManager.addListener(_onMouseMove);}void_startRandomMessaging(){Timer.periodic(Duration(seconds:Random().nextInt(8)5),(timer){if(!mounted)return;_showMessage(messages[Random().nextInt(messages.length)]);});}void_showMessage(Stringmsg){setState((){currentMessagemsg;});// 3秒后消失_messageTimer?.cancel();_messageTimerTimer(constDuration(seconds:3),(){if(!mounted)return;setState((){currentMessagenull;});});// 触发眨眼_blinkController.forward().then((_)_blinkController.reverse());}void_onMouseMove(PointerEventevent){finalwindowSizewindowManager.getSize();finalwindowPoswindowManager.getPosition();// 计算窗口中心finalcenterXwindowPos.xwindowSize.width/2;finalcenterYwindowPos.ywindowSize.height/2;// 判断鼠标是否靠近距离小于 200pxfinaldxevent.screenX-centerX;finaldyevent.screenY-centerY;finaldistancesqrt(dx*dxdy*dy);if(distance200!isLookingAtMouse){setState((){isLookingAtMousetrue;});}elseif(distance200isLookingAtMouse){setState((){isLookingAtMousefalse;});}}overridevoiddispose(){_blinkController.dispose();_messageTimer?.cancel();windowManager.removeListener(_onMouseMove);super.dispose();}overrideWidgetbuild(BuildContextcontext){returnScaffold(backgroundColor:Colors.transparent,body:Stack(children:[// 小狐狸本体可缩放倾斜看向鼠标Positioned.fill(child:Transform.scale(scale:1.3,child:Transform.rotate(angle:isLookingAtMouse?-0.2:0,child:Image.asset(assets/images/fox.png,fit:BoxFit.contain),),),),// 眼睛区域用于模拟眨眼Positioned(top:60,left:80,right:80,child:Row(mainAxisAlignment:MainAxisAlignment.spaceEvenly,children:[_buildEye(),_buildEye(),],),),// 对话气泡顶部显示if(currentMessage!null)Align(alignment:Alignment.topCenter,child:Padding(padding:constEdgeInsets.only(top:16),child:SpeechBubble(message:currentMessage!),),),],),);}Widget_buildEye(){returnAnimatedBuilder(animation:_blinkController,builder:(context,child){finalheightlerpDouble(20,5,_blinkController.value)!;returnContainer(width:18,height:height,decoration:BoxDecoration(color:Colors.black,borderRadius:BorderRadius.vertical(top:Radius.elliptical(9,height/2),bottom:Radius.elliptical(9,height/2),),),);},);}} 最终效果说明运行flutter run -d macos或 Windows 后你会看到一个半透明窗口中站着一只小狐狸每隔几秒冒出一句随机对话持续 3 秒眨眼动画自然流畅当你把鼠标靠近时它会“害羞地”歪头看你不占用任务栏像真正的桌面宠物一样安静陪伴 技术深挖Flutter 的隐藏能力特性用途transparent: trueframeless实现无边框悬浮窗window_manager插件控制原生窗口位置、大小、层级PointerEvent全局监听获取鼠标全局坐标Transform.rotate 动画实现拟人化交互AnimatedOpacity/AnimationController细粒度控制视觉反馈这些能力表明Flutter 不仅适合做 App也可以用来开发工具类、创意类甚至游戏化桌面程序。 扩展想法你可以继续做的加入语音合成“说”出来而不是只显示文字添加拖拽功能允许用户移动宠物多角色切换按快捷键换猫、狗、熊猫“心情系统”根据时间或用户活动改变行为打包成独立.exe或.app分享给朋友结语Flutter 是画笔不是模板大多数文章教你“怎么做登录页”、“怎么调接口”但我们忘了技术的本质是创造。这个“会说话的小狐狸”或许没用但它有趣、有温度、有生命力 —— 正如 Flutter 给开发者带来的自由感。下次当你打开编辑器请记住Flutter 不是用来复制别人 App 的工具而是你心中奇思妙想落地的桥梁。 依赖清单pubspec.yamldependencies:flutter:sdk:flutterwindow_manager:^0.4.0GitHub 示例资源建议包含fox.png透明背景 PNG完整项目结构截图编译后的桌面版演示视频GIF“有用的工具千篇一律有趣的灵魂万里挑一。”—— 愿你的代码永远带着一点顽皮。现在去让你的应用学会微笑吧 欢迎大家加入开源鸿蒙跨平台开发者社区一起共建开源鸿蒙跨平台生态。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎样做中考成绩查询网站跨境电商的基本流程

1.冒泡排序1.1 基本概念冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这个算法的名称由来是因为越小的元素会经由交换慢慢"浮&qu…

张小明 2026/1/2 18:57:28 网站建设

吉林省建设工程造价网站代理服务器国外

终极指南 | Font Awesome 7品牌图标完全使用手册 【免费下载链接】Font-Awesome The iconic SVG, font, and CSS toolkit 项目地址: https://gitcode.com/GitHub_Trending/fo/Font-Awesome 还在为网站缺少专业的企业标识而烦恼吗?Font Awesome 7品牌图标库为…

张小明 2026/1/1 3:32:12 网站建设

重庆工程网站建设青岛信息推广网站

企业微信官方数据显示,其日活用户已突破1.8亿,成为企业连接客户的核心工具。但实际运营中,企业面临客户流失率高、转化效率低的问题,单靠企业微信原生功能,已难以应对2025年私域运营的红海竞争。企业微信原生功能已覆盖…

张小明 2025/12/31 23:52:18 网站建设

网站访问量太多wordpress文本组件使用方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速生成一个基于C队列的简易聊天系统原型,功能包括:1. 多用户消息接收队列 2. 消息广播机制 3. 基础命令处理(如/exit)。要求使用最…

张小明 2025/12/31 18:33:05 网站建设

做网站的字体大小网站编辑岗位

微信网页版插件终极指南:一键解决访问限制 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版无法登录而苦恼吗?…

张小明 2026/1/1 12:20:15 网站建设

用游戏人物做网站属于侵权吗石景山网站建设服务

运动心理学与人格评估深度解析 运动心理学核心议题探讨 运动心理学作为一门融合体育与心理学的学科,在发展过程中面临着诸多关键问题的思考。 首先,体育教育(运动机能学)和心理学在运动心理学的发展历程中扮演了重要角色。在未来,体育教育应着重于将心理学原理融入实际…

张小明 2026/1/1 12:38:21 网站建设