转载自F大的自言自语←_←

创建控件类时,基类不能用源码

创建控件类时,基类要以swc方式提供(不能用源码),否则控件中所包含的子元件实例名将被添加到基类,而不是控件类中去。

调用gotoAndStop会导致帧代码插队执行

不论调用哪个元件的gotoAndStop,都会导致当前脚本所在层级内的所有帧代码(例如组件参数设置代码)插在下一句代码前执行,从而导致初始化顺序错乱,或报对象找不到的异常。

设置元件大小时,元件必须有内容

当元件内容为空时,设置其width和height,会导致scaleX和scaleY变成0。

控件子元件初始不能隐藏

控件的子元件初始不能设为隐藏,否则运行时会出现FlashPlayer莫名其妙退出的现象(不报异常)。

Chrome浏览器和其他浏览器对于字体名的识别不同

大多数浏览器(包括Flash独立播放器)对于字体名是采用英文标识名的,比如宋体用的是SimSun,而Chrome浏览器采用的是字体原名,比如宋体就叫宋体。
这就导致FlashIDE里编辑好的文本框设备字体,在Chrome下会不认,以至于被Chrome的默认字体代替,从而导致显示异常。
要解决这个问题,可以在AS里遍历所有的文本框,强制矫正其字体格式,或统一用动态文本框设置htmlText,并在设置时多加一个<font face="字体原名">的HTML标签。

文本框的默认字体会受选中内容影响

当文本框有选中内容时(仅有个光标位置也一样),defaultTextFormat属性的值会变成选中内容结尾处之前那个字符的格式,而不是defaultTextFormat本来的值,只有当无选中内容时,defaultTextFormat才会变回本来的值。

非动态创建的文本框的默认字体在设置htmlText后会被重置

对于不是用代码new TextField创建的文本框(即在FlashIDE里添加的文本框),其defaultTextFormat属性的值会在设置了htmlText后,被重置为FlashIDE里编辑的原始字体格式。
虽然大多数情况下这并不是什么问题(因为defaultTextFormat很少手动设置),但当在Chrome浏览器下播放时,就会因为Chrome浏览器不认文本框原始的英文字体标识名,而导致字体变成Chrome默认字体。
解决方案:在设置htmlText前,先设个替换字符,并调用setTextFormat(当前默认字体格式)还原被重置的默认字体格式,然后再把当前htmlText内容里的替换字符替换为新的内容,这样就能保证最外层的字体格式仍然保持为当前的默认字体格式(而不是原始字体格式)。

文本框设置htmlText有时会末尾多一空行

将文本框的htmlText设置为不含末尾空行的值,末尾会多出一个空行。

文本框直接设置缩放比例会导致文本框大小和设备字体显示不正常

设备字体获取字符范围也会受缩放比例的影响,导致和实际显示的位置不符。

文本框htmlText对于标签参数字符串中的特殊符号没做转义

一般只会在<a href="...">中使用自定义的参数,但若参数字符串中包含"、<等HTML特殊字符,则设置给htmlText后(设置的内容中已转义为&quot;等),文本框显示效果是正常的,链接效果也对,但取文本框的htmlText值,却会发现参数字符串中的特殊符号并非以转义格式存在,这就会造成若将该htmlText赋值给其他文本框用,会因html解析错误而丢失内容。

uint变量赋负值会变成大正数,而不是0

实际上是先将负值转为int类型,然后再强制类型转换为uint。

多个swc中有相同的类会导致只有一个有效

尤其出现在swc是UI的时候,若两个UI的swc中都有同样的滚动条,则只有一个会编译成功,另一个会编译成普通的MC,并在运行时报类型转换错误。

双击事件要把mouseChildren设为false时才有效

当包含子元件时,光设置doubleClickEnabled为true还不够,则还需要把mouseChildren设为false,才会触发双击事件。

内存回收不及时

确切的来说这个不算坑,只是Flash的内存回收既不是立即执行,也不是定时执行,而是当有新的内存分配申请,且当前剩余freeMemory不够多时,才去执行一次。
并且此时执行的回收,也不是显式调用System.gc()那样进行完整的回收,而是只回收一部分,只要能满足提供新的内存分配申请,就不再继续回收了。
所以对于大量的内存用完后,最好显式的调用一次System.gc(),这样可以充分释放掉这些已经分配了的内存。

定时器时间不准

Timer定时器的每两个TIMER事件之间的时间间隔,并不等同于设定的时间间隔,而是取整数个内部时间片(时长受设定帧率影响,并不固定)后触发。
事实上,Timer是在每次内部时间片处理时,检测是否已超过时间间隔,超过则触发一次TIMER事件,并重新开始计算间隔(并非累计,因此实际TIMER事件次数会少于理论次数)。

Release版和Debug版中,对于局部变量和成员变量同名的处理不同

var value:int = value + 1; //假设this.value原先为5。
类似上述语句,在Debug版中,会被理解为var value:int; value = this.value + 1,于是value会被赋值为6。
而在Release版中,会被理解为var value:int; value = value + 1,于是value会被赋值为1。

重载MovieClip类的isPlaying属性,会导致UI控件预览看不见

只要UI控件里包含重载了MovieClip的isPlaying属性的类,即使没调用到,也会导致所有的UI控件预览看不见,但实际运行却是正常的。

转载于:https://blog.51cto.com/cstar/1915904

【F大说】Flash的那些坑相关推荐

  1. 计算机考研压分的学校,篡改分数,恶意压分...考研院校的骚操作大盘点!小心避坑!...

    篡改分数,恶意压分...考研院校的骚操作大盘点!小心避坑! 摘要:对考研的同学来说,择校是至关重要的一环.尤其是在往届考生群中,大家讨论最多的就是要不要换学校.一些同学经历了被歧视.专业课压分 作者 ...

  2. 汽车中控屏显示com点android,老车遇上安卓大屏导航中控的坑

    老车遇上安卓大屏导航中控的坑 2020-11-22 23:20:11 2点赞 0收藏 3评论 起因 事发在前天,我开着13款经典福去加油,加完之后打火,发现用了6年的飞歌车机不亮了.本来以为重新打火就 ...

  3. W25Q128华邦Flash调试踩坑

    W25Q128华邦Flash调试踩坑 存储器内部默认数据为全1,同样整片擦除后数据恢复为全1. 注意:这款Flash不支持写数据覆盖,即写第二次数据之前要先擦除要写入地址对应的扇区.具体原因在于Fla ...

  4. python导入处理txt文件-python读取大文件踩过的坑——读取txt文件词向量

    在读取https://github.com/Embedding/Chinese-Word-Vectors中的中文词向量时,选择了一个有3G多的txt文件,之前在做词向量时用的是word2vec,所以直 ...

  5. python读取大文件的坑_python读取大文件踩过的坑——读取txt文件词向量

    在读取https://github.com/Embedding/Chinese-Word-Vectors中的中文词向量时,选择了一个有3G多的txt文件,之前在做词向量时用的是word2vec,所以直 ...

  6. python让词向量一直在内存里_python读取大文件踩过的坑——读取txt文件词向量

    在读取https://github.com/Embedding/Chinese-Word-Vectors中的中文词向量时,选择了一个有3G多的txt文件,之前在做词向量时用的是word2vec,所以直 ...

  7. 大数据 SQL Boy 脱坑指南

    不可否认的是 SQL 是一个伟大的发明,它让增删改查的操作更加地便捷化,而且 SQL 的学习成本相对其他编程语言来说较低,被逼到会写 SQL 的运营和产品我都见过不少... 大数据行业跟 SQL 更是 ...

  8. webupload大文件上传的坑

    因为新项目需要上传大文件,然后各种查资料,为了保存兼容性,选择了webupload,参照示例做好了,然后发现如果在一个页面要分开上传多个大文件时,出"鬼"了: 根据这个控件的初始化 ...

  9. 10a大电流稳压芯片_你踩过的大电流芯片测试座的坑

    大电流芯片,顾名思义,就是会过大电流的一种芯片,具体市场上如何定义大电流,这个没有明确的定义.但是测试座的话,却对芯片的电流有限制的,因为测试的小探针的单针一般是小于1A/pcs,小探针的单针最好的是 ...

最新文章

  1. ODOO权限管理,在两个方面设置权限
  2. MySQL中有外键时数据表的删除方法
  3. leetcode 633. 平方数之和(双指针)
  4. P2059 [JLOI2013]卡牌游戏
  5. Mac OS系统修改Hosts文件的方法
  6. 做好固定资产管理,提升行政的工作绩效
  7. springboot 实现自动屏蔽敏感词过滤器
  8. 小程序:uniapp开发和原生开发语法区别
  9. 数据过多/DOM操作导致页面卡顿和请求突增导致页面崩溃
  10. PIL imagefont 添加下划线
  11. 分享27个谷歌(Google)镜像
  12. ACM Southwestern European Regional Programming Contest (SWERC) 2017 J 智商题(模m同余)
  13. 屏幕适配以及ui切图规范和命名标准
  14. JavaScript-设计模式(四) 原型模式
  15. HTTP请求方法、GET和POST的区别
  16. Java后端解密微信小程序手机号数据
  17. LC28 Generate Parentheses
  18. 正则表达式-正则表达式的元字符
  19. string头文件函数用法大总结
  20. ActivitiListener

热门文章

  1. 西里尔字符_如何设计西里尔字母Њ(Nje),Љ(Lje),Ћ(Tshe)和Ђ(Dje)
  2. 谈谈对java中分层的理解_让我们谈谈网页设计中的卡片设计
  3. 碎片时间学习前端,我推荐这些~
  4. 以太坊钱包开发系列 - 创建钱包账号
  5. HDU 1253 胜利大逃亡 题解
  6. Win32页上的所有控件属性与方法
  7. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象
  8. 《Outlook时间整理术》一创建和使用自己的文件夹结构
  9. 【转】基于jquery,bootstrap数据验证插件bootstrapValidator 教程
  10. python numpy矩阵索引_Numpy中的矩阵索引