FlashPlayer10提供的3D功能有一个相当蛋疼的问题:只要设置过rotationX、rotationY或者rotationZ属性,显示对象里面的文字(尤其是设备字体,位图文本)就会一直处于模糊状态,即使强制将它们重置为0也无济于事。

除了3D旋转以外,有时2D旋转也会使用其它属性。因为在Flash里面,用rotation来旋转会导致设备字体不可见,需要绘制成位图才能正常旋转。在实际应用中,此法可能会给某些需求的实现带来不便,所以后来有大神(这位大神好像是Flash023)告诉我们用rotationZ代替rotation即可解决问题。此法比绘制成位图要方便多了,但由于设置过3D的旋转属性,所以文字还是难逃变模糊的命运。

历史上有不少能人志士都在努力寻求解决此问题的有效方法。最早看到的一个方法是创建两个显示对象,一个用于3D旋转,而另一个不作任何3D变换,只在不旋转的时候显示,以确保非旋转状态下呈现出最清晰的文字。这时候,如果显示对象的内容比较复杂,那么同步它们的状态将是一件相当痛苦的事情。

只要在旋转结束后执行以下这句:

显示对象.transform.matrix3D = null;

文本就能恢复原有的清晰状态,是不是很方便呢?

***-------------* 源文件 *---------------***

/**
rotate2D_mc---文本元件实例
rotate3D_mt---文本元件实例
rotate_btn----按钮实例
*/ var currentRotation:Number = 0; var rotate2D_mt:Matrix = rotate2D_mc.transform.matrix;
var rotate3D_mt:Matrix = rotate3D_mc.transform.matrix; rotate_btn.addEventListener(MouseEvent.CLICK, rotateClickHandler); function rotateClickHandler(event:MouseEvent):void
{
rotate_btn.visible= false;
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
} function enterFrameHandler(event:Event):void
{
currentRotation -= 0.2 * (currentRotation - 360);
rotate2D_mc.rotationZ = currentRotation;
rotate3D_mc.rotationY = currentRotation;
if(Math.abs(currentRotation - 360) < 1)
{
currentRotation = 0;
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
rotate_btn.visible= true; //旋转结束后执行这句:显示对象.transform.matrix3D = null;文本就能恢复原有的清晰状态。
rotate2D_mc.transform.matrix3D = rotate3D_mc.transform.matrix3D = null; rotate2D_mc.transform.matrix = rotate2D_mt;
rotate3D_mc.transform.matrix = rotate3D_mt;
} }

  

一行代码让3D翻转后的文本恢复清晰的更多相关文章

  1. 33个非常实用的JavaScript一行代码

    33个非常实用的JavaScript一行代码 一.日期处理 1. 检察日期是否有效 该方法用于检测给出的日期是否有效: const isDateValid = (...val) => !Numb ...

  2. Android之ListView性能优化——一行代码绑定数据——万能适配器

    如下图,加入现在有一个这样的需求图,你会怎么做?作为一个初学者,之前我都是直接用SimpleAdapter结合一个Item的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...

  3. 【译】仿Taasky的3D翻转菜单动画实现

    最终效果 最终效果 开始 首先下载并打开一个事先搭好架子的Demo,然后来分析一下.这个Demo包含一个主页和详情页,其中MenuViewController继承自UITableViewControl ...

  4. 两个activity的3D翻转动画.md

    一.业务需求 这里在公司项目设计时,用到了一个小的需求,就是点击一个按钮然后整个activity的页面进行3d翻转; 二.设计思路 由于是2个activity的之间的翻转动画,就意味着前90度是A页面 ...

  5. Asp.Net Core 轻松学-一行代码搞定文件上传 JSONHelper

    Asp.Net Core 轻松学-一行代码搞定文件上传   前言     在 Web 应用程序开发过程中,总是无法避免涉及到文件上传,这次我们来聊一聊怎么去实现一个简单方便可复用文件上传功能:通过创建 ...

  6. EasyOffice-.NetCore一行代码导入导出Excel,生成Word

    简介 Excel和Word操作在开发过程中经常需要使用,这类工作不涉及到核心业务,但又往往不可缺少.以往的开发方式在业务代码中直接引入NPOI.Aspose或者其他第三方库,工作繁琐,耗时多,扩展性差 ...

  7. 纯CSS 3D翻转一个面(翻转导航菜单 立方体)

    在做练习的时候学到css的翻转导航菜单,原代码有点让人头疼,通过对其css的参数一点点研究了其实现过程. 这里推荐大家研究这个3D翻转动画的代码. 我的github:swarz,欢迎给老弟我++星星 ...

  8. 怎样快速找到某一行代码的git提交记录

    利用notepad++提高问题分析效率,以及快速找到某一行代码的git提交记录 1. 全目录搜索/替换 Notepad++是一款强大的文本编辑工具,当知道大概的关键词但不知道在哪个日志时可以使用not ...

  9. 「Python实用秘技08」一行代码解析地址信息

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第8期 ...

随机推荐

  1. CSS行内块元素(内联元素)

    一.典型代表 input img 二.特点: 在一行上显示 可以设置宽高 <style type="text/css"> img{ width: 300px; /* 顶 ...

  2. 洛谷 P3183 [HAOI2016]食物链 题解

    P3183 [HAOI2016]食物链 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形 ...

  3. 61、Spark Streaming:部署、升级和监控应用程序

    一.部署应用程序 1.流程 1.有一个集群资源管理器,比如standalone模式下的Spark集群,Yarn模式下的Yarn集群等. 2.打包应用程序为一个jar包. 3.为executor配置充足 ...

  4. 第06组 Beta冲刺(2/4)

    队名:福大帮 组长博客链接:https://www.cnblogs.com/mhq-mhq/p/11990570.html 作业博客 : https://edu.cnblogs.com/campus/ ...

  5. 为什么使用css3和div布局?

    1,代码精简(没有本身自带的一些属性,容易设置样式)2,解决了table表格的嵌套问题3,速度问题(页面代码减少,增加了编写代码的速度)4 ,对排名的影响,基于xhtml标准的div+css布局会更快 ...

  6. C#发起Http请求,调用接口

    //方法1. Post 异步请求,普通的异步请求,传输普通的字符串等,对于有html代码的字段值的传输支持不好,如果需要传输html,二进制等数据的传输,请使用下面第二个方法,即使用UploadDat ...

  7. java 库 pdfbox 将 pdf 文件转换成高清图片方法

    近期需要将 pdf 文件转成高清图片,使用库是 pdfbox.fontbox.可以使用 renderImageWithDPI 方法指定转换的清晰度,当然清晰度越高,转换需要的时间越长,转换出来的图片越 ...

  8. Mac删除自带的abc输入法

    1. 安装软件:https://pan.baidu.com/s/15oIzTDojpignoR5MiZ-Q1A 安装并注册 2. 进入到目录,并打开: 1. /Users/toov5/Library/ ...

  9. Laya的版本管理

    参考: Laya项目发布详解 发布时,勾选开启版本管理 点击上图“是否开启版本管理”右边的+号. 可以选择加入版本管理,或者排除版本管理的文件夹. 比如我要排除bin/test这个文件夹下的文件,不使 ...

  10. [LeetCode] 636. Exclusive Time of Functions 函数的独家时间

    Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find ...