`
peijinlong
  • 浏览: 32223 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

关于 addFrameScript函数的纠结

阅读更多
    
     好久没有继续更新了,难得远道国庆放假,得好好归纳下才行。
     之前在做项目的时候,需要在一个MovieClip的时间轴的两个时刻执行帧脚本,但是在使用addFrameScript函数的时候发现了它的一些比较出乎意料的行为。现在就来总结一下:


1、addFrameScript的扩展用法。
   我之前就知道这个公开的“秘密”API是用于在程序里面动态的为MC增加帧脚本的一个函数,这个函数的一般用法如下:
   mc.addFrameScript(frameIndex,function);

   其中frameIndex就是你要加入帧脚本的帧。这里值得注意的是,这里的frameIndex是从0开始的,而不是像gotoAndStop()函数是从1开始的,这里需要将实际的帧减一才是正确的。
   而在我们需要一次过在多个帧上面添加不同的帧标记的时候,我们需要多次调用这个函数。例如:
   mc.addFrameScript(1,fun1);
   mc.addFrameScript(5,fun2);
   mc.addFrameScript(10,fun3);

而实际上,我们可以这样使用,以提高编码效率:
   mc.addFrameScript(1,fun1,5,fun2,10,fun3);



2、addFrameScript的一个小秘密
   其实我们在使用Flash IDE为一个MC增加帧脚本的时候,在编译期,编译器也是使用addFrameScript来为你的MC增加帧脚本的,为了验证这个想法,你可以做一下实验。
   假设有这么一个类:
public class TestClass extends Sprite
{
   public function TestClass():void{
   }
}

     然后打开Flash IDE,创建一个MC类型的原件,在时间轴的第一帧上面增加一个任意的帧脚本,例如一个stop()函数。然后将这个原件绑定到上面这个类上面,保存。然后发布影片,会发现编译失败,错误提示为无法找到addFrameScript函数。
    从这个实验可以知道,编译器在发布的时候也是使用这个内部API来增加帧脚本的。

3、运行时addFrameScript的行为。
     运行时的addFrameScript行为比较少人知道,这个可以归纳为:

      
  • 调用一次addFrameScript函数增加了帧脚本后,这个帧脚本可以多次生效。所以MC用完后一定要记得stop掉,否则只是从显示列表 remove掉是没有用的,这个帧脚本还是会循环运行的。
  •   
  • 在同一个帧上面多次调用addFrameScript函数,只有最后一次的调用会成功,前面的帧脚本会被覆盖。

   最后,也是最别扭的一个行为就是,一旦这个MC开始了播放,再次调用addFrameScript就会无效的了。假设我们有以下的代码:
   public class TestClass extends MovieClip{
   
   public function TestClass():void{
     this.addFrameScript(3,fun1);
   }

   private function fun1():void{
     trace("This is fun1.");
     this.addFramScript(10,fun2);
   }

   private function fun2():void{
     trace("This is fun2.");
   }
}


然后发布调试影片,发现只有 fun1被执行,fun2的trace是没有出现的。看来我们是无法为一个正在播放的MC增加帧脚本的,这个奇怪的行为可是搞了我好一阵子呢。
分享到:
评论

相关推荐

    AS3 让一张图片变成火焰特效的代码

    addFrameScript(createAndAnimateParticles); ``` 颜色变化是火焰效果的关键部分。我们可以使用渐变工具或者颜色矩阵滤镜来改变粒子的颜色,使其看起来像火焰。例如,粒子靠近“源头”时可能是较冷的蓝色,随着远离...

    WorkerError(解决方案).md

    项目中常见的问题,记录一下解决方案

    2024-2025第一学期一上U1~3.pdf

    2024-2025第一学期一上U1~3.pdf

    Redis详解与常见问题解决方案中文最新版本

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。感兴趣的朋友可以过来看看

    ASP+ACCESS航班在线定票系统设计(源代码+论文)(源代码+论文+说明文档).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    全国月尺度平均气温-Tm-1961-2022-025x025

    全国月尺度平均气温数据集(1961-2022, 0.25° × 0.25°)是一个高分辨率的网格化平均气温数据集,覆盖了中国大陆及周边地区。 该数据集通过科学方法整合气象观测和再分析数据,为气候研究、生态模型、农业生产、以及水资源管理等领域提供了重要支持。 数据下载后可显示详细信息。

    yolo算法-筷子数据集-588张图像带标签-.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    shell脚本编程实践,分享给有需要的人,仅供参考

    模拟退火算法shell脚本编程实践,分享给有需要的人,仅供参考。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    基于PCIe接口的高性能视频编辑系统.docx

    基于PCIe接口的高性能视频编辑系统

    python爬虫入门,分享给有需要的人,仅供参考

    python爬虫入门,分享给有需要的人,仅供参考。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    在线音乐网站的设计与实现

    在线音乐网站的设计与实现

    电工与电子技术课程标准.doc

    电工与电子技术课程标准.doc

    1-全国各地级市人口、城镇居民人均可支配收入、进出口总额、社会消费品零售总额2015-2021年-社科数据.zip

    根据搜索结果,以下是一条关于社科数据的内容介绍:本数据集涵盖了2015至2021年间全国各地级市的关键经济指标,包括人口数量、城镇居民人均可支配收入、进出口总额以及社会消费品零售总额。这些数据为研究区域经济发展提供了宝贵的信息资源,来源于各省市统计年鉴及国家统计局的官方数据,确保了数据的权威性和准确性。数据内容全面,缺失值较少,适合用于宏观经济分析、政策评估以及学术研究等多个领域。通过这些数据,研究者可以深入了解中国各地区在不同年份的经济表现和发展趋势。

    SessionStorageError(解决方案).md

    项目中常见的问题,记录一下解决方案

    yolo算法-大卡车数据集-96张图像带标签--卡车.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    6.html

    6

    [net毕业设计]asp.net教师教学评价分析系统(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    IP破解(5):DWC-ddrctl-lpddr54(LPDDR4/4X/5控制器)

    S家LPDDR5/4/4X 控制器,针对功耗、延迟、带宽和面积进行了优化,支持 JEDEC 标准 LPDDR5、LPDDR4 和 LPDDR4X SDRAM。控制器通过 DFI 5.0 接口连接到 S家LPDDR5/4/4X PHY 或其他 LPDDR5/4/4X PHY,以创建一个完整的内存接口解决方案。S LPDDR5/4/4X 控制器包括软件配置寄存器,可通过 AMBA 3.0 APB 接口访问。 // Key Used : DWC-DDRCTL (IP access) // Key Used : DWC-LPDDR54-CONTROLLER (Add-on feature access: DWC LPDDR5/4/4X Controller) 注意:压缩包只有IP使用文档,完整IP及无加密SV代码压缩包有获取方式。

    java桌面小程序,主要为游戏.zip学习资源

    java桌面小程序,主要为游戏.zip学习资源VM

    1-全国各省、市、县农业保险绿色保险收入支出赔付率统计数据2002-2020年-社科数据.zip

    全国各省、市、县农业保险绿色保险收入支出赔付率统计数据集涵盖了2002至2020年间的详细数据。该数据集包含全国31个省、自治区、直辖市的农业保险收入、支出、保险总支出、农业保险规模占比以及农业保险赔付率等关键指标。此外,数据还涉及341个地级市的农业保险收入和支出年度数据,时间跨度从2002年到2020年。特别值得一提的是,数据中还包括了县级政府农业保险补贴数据,覆盖了产粮大县726个和非产粮大县755个,时间范围为2016至2018年。这些数据均来源于历年中国保险年鉴,并经过手工整理,提供了农业保险规模占比与农业保险赔付率等重要指标。此数据集为研究中国农业保险市场的发展、政策效果评估以及风险管理提供了宝贵的实证资料。

Global site tag (gtag.js) - Google Analytics