问题标签 [actionscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - 调用 removeChild() 时 Flex 中的垃圾收集 - 管理竞争条件
我在 Flex 中有一个“框架”,它加载和销毁子“部分”,它们是模块类的实例。它们中有很多网络服务和动画,并且是面向公众的网站的一部分。
在我从屏幕上删除一个部分之前,我在实例上调用了一个“hideSection()”接口方法。在这种方法中,我会淡出任何控件,或者如果该部分想要防止自己被关闭,则返回 false。目前它还停止运行任何 Timer 实例。
问题是即使从舞台上移除了部分对象,也可能会有一些未完成的事情发生。例如,我可能会在 effectEnded 触发某些东西的地方运行效果,或者缓慢的 Web 服务请求可能会超时并导致错误弹出。
由于垃圾收集器的工作方式 - 有时该对象对象会更快地被杀死,而其他时候则更晚。一旦某个部分关闭,我会尽量减少发生的坏事。
我想出了以下可能的解决方案。想知道有没有更好的。
- 有一个设置为 true 的 _disposed 属性。在任何可能有不良行为的事件处理程序中(在该部分关闭后)我只想说
if (_disposed) { return; }
. - 可能还需要实现“IDisposable”接口,例如在 .NET 中。
这真的是我唯一的选择吗 - 或者我可以以某种方式加快垃圾收集。如果效果仍在运行,垃圾收集甚至会发生吗?
我也很好奇是否应该将事物设置为 _null,尤其是计时器。或者,如果没有对它的引用,只需 stop() 一个计时器就足以让它被垃圾收集。
apache-flex - 您如何学习新的技能/框架/技术?
我需要能够为一个相对较大的 Adobe AIR 项目做出贡献,而我是从零开始使用这项技术的。最好的方法是什么?
我通常会得到一本好书/教程并按照自己的方式完成它,但这次似乎要在合理的时间范围内实现这一点需要学习的东西太多了。我需要有关 Actionscript、FLEX 等的书籍...
您是否知道任何可能对这种特殊情况有用的好资源?
如果你在我的鞋子里,你会怎么做?
flash - 现有 Flash 组件的自动化测试(非 UI)
我构建并维护了一组 Flash 组件,这些组件分发给发布者并允许他们与我们的系统集成。目前该组件没有 UI,仅包含用于查询我们的系统服务器、解析响应和修改查询中发送的参数的编译代码。Flex 和 CS3 都有一个 As2 版本和一个 AS3 版本。我们典型的工作流程是这样的:
1.) 加载组件 2.) 在组件上设置参数 3.) 告诉组件查询我们的系统 4.) 等待表示响应已被接收和解析的事件 5.) 调用组件上的方法以获取和解析使用解析的数据
我们最近一直在谈论自动化这些组件的测试,并且似乎有很多关于 AsUnit 和 FlexUnit 等框架的讨论。但是,我一直无法掌握如何有效地使用其中之一。示例和教程总是忽略现实世界的示例,而是提供多个类和过多的代码来测试示例函数是否返回 num1+num2。
我唯一能猜到的是,这些测试框架旨在从一开始就实施,并在开发之初就为测试套件、测试运行程序和测试用例进行规划。
我们的组件的自动化测试必须确保属性设置正确,这些属性在请求中发送到我们的系统,收到的响应考虑到发送的参数是正确的,解析的数据包含正确的信息,并且没有错误,错误的响应, 或导致无限的解析循环。
我的问题是,是否有任何方法可以自动测试现有的、广泛分布的、已建立的 Flash 组件,而无需完全重新设计以适应测试框架?还是我误解了测试框架而这已经成为可能?
更新:感谢您的回复。我已经开始将我的组件与 AsUnit 集成,并认为我对它如何帮助我有了很好的理解。但是,AS2 AsUnit 不支持异步测试用例,我很难找到支持的 AS2 单元测试框架。异步测试对这个项目非常重要。有人对不同的框架有任何建议吗?谢谢!
apache-flex - 加载相对于服务器根目录而不是 .swf 位置的 Flex 资源
我有一个代表网站主文件的大型 (700kb) Flex .swf 文件。
对于性能测试,我想尝试将其移至 Amazon S3 托管(我已经对某些视频和大文件进行了此操作)。
我继续这样做,并更新了 html 页面以引用远程 .swf。
事实证明,Flash 将加载与访问资源的 .swf 文件相关的任何资源——无论 html 页面的根目录是什么。所以我的资源现在正在从远程站点(它们不存在)加载。
有两件显而易见的事情我可以做: * 远程复制我的所有资源(因为我现在只是在测试,所以还没有准备好) * 在 .swf 访问的每个 URL 中添加一些抽象层以派生新路径。
我真的很想按一下开关并说“加载与[原始服务器]相关的所有内容”。
这样的事情是否存在,或者除非我完全限定每条路径,否则我是否会从远程机器加载所有内容?
我想避免任何“hacky”之类的东西:子类 Image 并破解那里的路径
flash - 基于 Flash 的 RSS1/RSS2/ATOM/RDF 阅读器的来源?
有谁知道在哪里可以找到一个好的开源 RSS 阅读器在 Flash 中?我看到很多实现了 RSS 或 ATOM 或 RSS2,但没有一个能实现所有不同的 RSS 样式格式。我更愿意将它保存在 Flash 中,因为我试图保留它,以便它以最低的服务器要求运行......
要求: - 解析 RSS1/RSS2/ATOM/RDF,如果可能,更多 - 在 ActionScript 2 中工作 - 最好是开源的,但如果它带有源代码,我会考虑商业化。
谢谢,
布拉德。
flash - Flex Builder 3:调试器跟踪错误,修复 as 文件时,不断抛出相同的错误,卡在过去
我正在运行我正在使用 flex builder 编译的第一个项目。之前我都是用flash编译或者flash develop。
有一段时间它工作得非常整洁。但是一旦它开始抛出类型错误,我似乎就无法编译更新和保存的动作脚本文件。似乎它一直停留在时间上,并从错误仍然存在时开始编译 actionscript 文件。
也许我错过了有关配置调试器的任何选项?
apache-flex - 如何取消/不接受 Flex 3 中的拖放操作?
目标: 允许用户通过从 AdvancedDataGrid 中拖动一行来删除记录,将其放到垃圾桶图标上,并通过带有“确定”和“取消”按钮的弹出警报验证用户是否打算这样做。
什么工作:
- 将一行拖放到垃圾桶图标上。
- 如果用户单击“确定”按钮,则删除该记录。
- 如果用户单击“取消”按钮,则操作被取消。
问题: 用户点击“取消”按钮,弹出警报关闭后,ADG 中的行无法拖动。我发现在对 ADG 进行排序后,通过单击列标题,用户可以再次开始拖动行。
代码:(从原始帖子更改)
提前感谢所有有用的建议。
flash - Flash 中的“static void Main”等价物是什么?
我正在对以前在 Flash CS3 中成功运行的项目尝试 FDT 编辑器。
FDT 成功构建并运行它,但 SWF 为空白(白色)。我在输出文件上尝试了几个查看器,它实际上是空白的。
一个区别是现在我的项目似乎不包括我的入口.fla
文件。我是 Flash/ActionScript 的新手,想知道 FLA 文件是否包含类似于public static void Main
其他语言中的方法的魔法。
那么,如果我纯粹在 ActionScript 3(无.fla
文件)中构建应用程序,我该如何指定入口点、画布大小等?
当然,也有可能是我设置的 FDT 不正确 :)
编辑:新手警报!
原来我通过 FDT 看到的白色阶段是因为我的 FLA 在不同的文件夹中运行,我无法加载我的任何资源,所以没有准备好显示。我还配置了 FDT,使我没有通过调试器看到错误。
这个问题有点傻。删除这样的问题是否正常?
对于其他具有扎实编程背景的 Flash/ActionScript 的人来说,我发现这是对显示模型的一个很好的概述:
http://livedocs.adobe.com/flex/3/html/help.html?content=05_Display_Programming_02.html#152593
actionscript - 在 swf 中使用的神秘资产,在 fla 的任何地方都找不到?
在代码顶部附近,我看到了类似的东西,
btn_dropdown._visible = false; mcMenuBkg._visible = false;
但是我在库或任何代码中的任何地方都找不到这些资产,这有什么意义?
库中看起来相同的影片剪辑具有不同的名称,我可以将它们完全删除,并且在我编译和运行时它们仍然会显示出来,或者我可以将跟踪语句添加到它们的代码中并且它们永远不会被调用。
这些资产到底是在哪里定义的?
actionscript - 通过动作脚本中的鼠标悬停位置滚动 ScrollPane 的最佳方法?
当鼠标接近滚动窗格的顶部边缘时,它会向上滚动直到到达顶部,只有当鼠标离开顶部边缘区域时才会中断。
底边也一样。