问题标签 [flex3]
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 - Flash TextField HTML - 如何防止丢失图像的错误对话框?(错误 #2044:未处理的 IOErrorEvent:.text=错误 #2035:找不到 URL)
我正在使用 Flash TextField 控件在 Flash 演示文稿中显示一些 HTML 内容,以便在大型触摸屏信息亭上显示。不幸的是,如果显示的 HTML 内容中的任何图像标签指向不存在的图像,则会显示一个带有错误消息的对话框
我试图避免弹出该对话。通过加载器类加载内容的解决方案IOErrorEvent.IO_ERROR
是 catch ,但我尝试在 TextField、舞台上、Main 和 loaderInfo 上进行监听,但无济于事。我已经尝试将整个东西包装在一个 try-catch 中,但这也不起作用。
这是我用来寻找解决方案的简化代码:
编辑:这是整个工作代码。
当然,对于动态内容等,您需要一个图像列表和一个生成处理程序的函数等。
apache-flex - Flex 3 中的 virtual 关键字是否会导致性能下降?
正如标题所说的那样。虚拟关键字是否会导致性能下降?
apache-flex - List 组件上的 itemRollOver 和 itemRollOut 事件的问题
我已经在 List 组件上设置了itemRollOver
和itemRollOut
事件侦听器,但是每当我将鼠标滚动到列表项上时,同一个列表项的 over 和 out 事件都会依次触发。我的列表使用自定义 itemRenderer。
任何想法为什么会这样?Adobe 文档没有提供对此的深入了解(不足为奇......)。
apache-flex - Flex/Actionscript 中的连接线(拖动时)
我有一个 mx:Canvas 元素,其中包含多个 mx:Panel 元素。我希望能够绘制一条连接两个这样的 mx:Panel 的线,这样当一个或两个 mx:Panel 被拖动时,该线继续连接两个 mx:Panel。这似乎是一件微不足道的事情,但我一直无法弄清楚。
实际上,这就是问题所在。
替代文字 http://img150.imageshack.us/img150/5656/ishot1eu3.jpg
由于更新仅在面板到达其最终位置时发生,所以一旦您开始拖动“B”面板,就会留下一条悬空线:
替代文字 http://img212.imageshack.us/img212/4296/ishot2qi6.jpg
如下所示,一个可能的解决方案是覆盖 mx:Canvas 组件的 updateDisplayList() 方法。不幸的是,这只会在拖动后更新绘图,而不是在运动时更新。在 Panel 中侦听“xChanged”和“yChanged”事件会产生与覆盖 updateDisplayList() 相同的结果。
如下所述,最终解决方案需要将移动事件从移动的 Panel 分派到它正在移动的 Canvas 上。这会迫使线条在整个运动中重新绘制。
感谢所有的帮助!
flash - 使用 Adobe AIR 构建插件架构
我正在考虑选择 Adobe AIR 作为即将到来的项目的客户端实施技术。(之前的选择是 C# 和 WPF,但最近我对 Flash/Flex/AIR 印象深刻。)
但我的产品最重要的特性之一将是它的插件架构,它允许第三方开发人员以有趣的方式扩展功能和 GUI。
我知道如何在 C# 中设计架构:插件加载器将枚举本地“app/plugins/”目录中的所有程序集。对于每个程序集,它会枚举所有类,寻找“IPluginFactory”接口的实现。对于工厂创建的每个插件,我会询问它的 MVC 类,并将其 GUI 元素(菜单项、面板等)插入现有 GUI 布局中的适当插槽中。
我想在 AIR 中完成同样的事情(从本地文件系统加载插件,而不是从网络加载插件)。阅读本文后,我的理解是这是可能的,并且基本架构(将 SWF 加载到沙盒应用程序域等)与您在 .NET 中执行的方式非常相似。
但我对这些问题很好奇。
如果你们中的任何人使用 flash 播放器进行了任何动态类加载(最好在混合 flash/flex 应用程序中,特别是在 AIR 主机中),我很想听听您构建插件框架的经验以及遇到棘手情况的地方使用 flash 播放器,以及使用 flash、flex 和 AIR API。
例如,如果有人问我同样的问题,但考虑到 Java 平台,我肯定会提到 JVM 没有“模块”或“程序集”的概念。最高级别的聚合是“类”,因此很难在插件系统中创建组织结构来管理大型项目。我还将讨论多个类加载器的问题,以及每个类加载器如何维护自己的加载类的单独实例(具有自己的单独静态变量)。
以下是一些对我来说仍然没有答案的具体问题:
1) 动作脚本“Loader”类可以将 SWF 加载到 ApplicationDomain。但是那个 appdomain 到底包含什么?模块?上课?MXML 组件是如何表示的?如何找到所有实现我的插件接口的类?
2)如果您已将插件加载到与主应用程序不同的 ApplicationDomain 中,那么从该其他应用程序域中调用代码是否会更加复杂?对于可以通过跨应用程序域编组层的数据类型是否有任何重要限制?编组是不是非常昂贵?
3) 理想情况下,我想将我自己的大部分主代码开发为插件(主应用程序只不过是一个插件加载外壳),并使用插件架构将该功能提升到应用程序中。是不是让你心里产生了恐惧?
keyboard-shortcuts - Adobe AIR 键盘挂钩
我正在尝试向我的 AIR 应用程序添加一项功能,即使应用程序已最小化,它也可以侦听(可配置的)全局键盘事件。例如:CTRL-ALT-SHIFT-F12 截取屏幕截图。
我找不到任何注册键盘钩子的方法,并且监听键盘事件仅在应用程序具有焦点时捕获它们。建议?
actionscript-3 - 如何在 Actionscript 中获取对象的属性列表?
我有一个 dataprovider 和一个分配给我的 dataprovider 的数组的 filter 函数。
当数据提供者 (item.data) 传递给过滤器函数时,如何获取其每一行中的属性列表?
例如,如果我的对象包含:
- 目的
- 姓名
- 电子邮件
- 地址
然后我希望在我的过滤器功能中能够查看姓名、电子邮件和地址。不幸的是,我事先不知道这些属性是什么。
有任何想法吗?
flex3 - flex 3和访问远程java对象
我刚开始学习 flex 并且试图了解 Flex 是如何进行远程处理的?根据我的阅读,Flex 提供了一个 LifeCycle 数据服务战争,它位于您的服务器上并拦截您的远程调用,这是否接近?
我担心如果我使用这个选项 1. 我必须向我的服务器添加额外的战争 - 生命周期数据服务战争和 2. 我必须为我在每个 cpu 上使用的每个实例支付许可证。
有没有更简单的 [免费] 选项,我可以使用它从我的 flex mxml 中调用我的远程 java 对象?
apache-flex - 使 Flex 数据网格适合数据
我有几行文本数据,可以在 0 到 100 之间变化,并且一次都需要在屏幕上可见。默认行为适用于网格,直到行 * rowHeight > gridHeight。
基本上我需要一个挂钩到项目高度或行高来根据网格的高度计算它。我已将 paddingTop 和 paddingBottom 设置为零,但行之间仍有大量空白。
我的数据网格组件...
setRowHeight() 有帮助,但如果我将行高设置为 10,则单元格的 itemRender 比单元格大。
apache-flex - Flex 3 - 在使用 AS3 时,我必须在设置其属性之前添加组件吗?
假设我有一个 Flex 3 mxml 组件,称之为 A。A 有一个名为“b”的 get/set 属性。在 AI 中还有另一个内部组件 C,它是使用 mxml 指定的。在 mxml 中“实例化”组件 A 时,我可以在声明时指定 b 的值,一切正常。但是,当我使用 Actionscript 初始化组件时,我必须先将组件添加到呈现的容器中,然后才能设置所述组件的属性(在本例中为“b”)。当属性“b”的设置器以某种方式访问 A 中的 C 时,就会发生这种情况。
所以,这在运行时失败(它说 C 是空的)......
另一方面,以下任何一项都可以
或者
如图所示,在将组件添加到容器后设置属性时,不会引发运行时错误消息。好的,这是有道理的,我想在组件被添加到容器之前,组件的内部结构并没有真正创建。不过,这有点烦人。有什么方法可以保证组件内部完全呈现而不将其添加到容器中?我不喜欢使用 actionscript 与 mxml 时的不同感觉。我想要一个解决方案,以便基本上在没有属性“参数”的 mxml 中声明 A 等同于在 AS 中使用 new 运算符声明 A。至少,就 A 的内部状态而言。