最近一直在看flex4.5,adobe官方说spark组件效率很高,从flex3迁移到flex4是“无痛”的。不过用alert的时候就遇到一个麻烦。
问题的现象大概如下:
在Application中使用Alert是没有任何问题,但是在Module中使用Alert就出现以下错误,详见下图,调试发现awm为null。
说明一点在sdk3中是不会存在该问题的。
在网上查了下,有人说这是flex4的一个很“经典”的问题了,从adobe的论坛上也找到了解决问题的答案。
解决方法很简单,只需要在Application中引用
import mx.managers.PopUpManager;
并且实例化PopUpManager
存在必有它存在的理由,我跟踪了代码,简单的分析了下原因,如有不合理的地方还望指出。
下面是一个老外关于这个问题的回答:
In Flex 4, if you have a shell app and sub-apps or modules, the main app
must link in PopUpManager explicitly.
Import mx.managers.PopUpManager; PopUpManager;
It should be explained in the release notes.
上面的大概意思就是在flex4中,如果存在子应用或者module,那么你必须明确在Application中引用PopUpManager并实例化PopUpManager。这条规则应该在flex发行说说明的,但是adobe这家伙有点懒,什么都没有留下。
spark组件为了提高自己的效率,相比flex3一个变化就是在application中并不是加载很多并初始化manager类,而是需要的时候才加载,而且这些manager是单例的。
下面是flex4 SystemManager的部分代码
c = Singleton.getClass("mx.managers::IActiveWindowManager");
if (c)
{
registerImplementation("mx.managers::IActiveWindowManager", new c(this));
}
c返回为null,因此就不会实例化IActiveWindowManager类,但是子Module中弹出窗口要用到该类,因此就会报空指针异常了。
<!-- [DocumentBodyEnd:3e095a63-3232-42b2-95eb-f7698016c327] -->
- 大小: 16.4 KB
分享到:
相关推荐
但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,...
Spark 2.20 版本是其发展过程中的一个重要里程碑,引入了许多优化和新特性。这份源码中文注释资源对于想要深入理解 Spark 内部工作原理的开发者来说,无疑是一份极其宝贵的资料。 在 Spark 的源码中,我们可以学到...
在这个项目中,我们重点关注的是如何使用Spark MLlib和Scala来实现中文文本的分词和分类,特别是通过逻辑回归模型进行文本分类。 首先,中文分词是处理中文文本的前提步骤,因为中文没有明显的空格来分隔单词。在...
Apache Spark 2.0 for Beginners English | ISBN: 1785885006 | 2016 | Key Features This book offers an easy introduction to...Bring together all that you've learned and develop a complete Spark application
本资料主要关注的是Spark Streaming中的滑动窗口(Sliding Window)机制,这是实现时间窗口操作的关键概念,对于理解和应用Spark Streaming至关重要。 滑动窗口是实时数据处理中一种常见的抽象概念,用于定义一段...
标题中的"SparkApplication"指的是一个基于Java开发的项目,它使用了Spark微型Web框架,MongoDB数据库以及FreeMarker模板引擎。这个应用展示了如何在Java 10环境下集成这些技术来构建一个功能丰富的Web应用程序。 ...
可以帮助开发者和数据工程师在处理大规模数据集时,能够设计出更加高效、可靠的数据处理流程,并且能够利用Spark强大的计算能力在商业智能、数据分析、机器学习以及实时数据处理等应用场景中大显身手。
然而,在实际应用中,开发人员可能会遇到一个常见问题——Spark 无法直接使用 Hive 中定义的自定义函数(UDF)。本文将深入探讨这一问题,并提供解决方案。 #### 一、问题背景 当开发者尝试在 Spark 应用程序中...
module.exports = factory(); } else if (typeof define === 'function' && define.amd) { // AMD define(factory); } else { // Browser globals (with support for web workers) var glob; try { glob =...
当需要在Spring Boot应用中整合Spark进行远程服务计算时,通常会采用Spark的Standalone模式。本文将深入探讨如何将Spring Boot与Spark集成,并使用Standalone模式来实现远程服务计算。 首先,我们需要了解Spark ...
①:用户使用kubectl 创建 SparkApplication 对象,提交sparkApplication的请求到api-server,并把sparkApplication的CRD持久化到etcd; ②:SparkApplication controller 从 kube-api server 接收到有对象请求,...
在Spark应用开发中,选择合适的JDK版本至关重要,因为不兼容的JDK版本可能导致运行时错误,例如`java.lang.UnsupportedClassVersionError`。Spark 2.2及更高版本不再支持Java 7,因此,如果Hadoop环境依赖于较旧的...
该包可以启动spark的thriftserver。可以解决报错failed load org.apache.spark.sql.hive.thriftserver.HiveThriftServer2的报错。
3. **Spark Application**:一个完整的Spark程序,包括main方法和Job。 4. **DAG(Directed Acyclic Graph)**:Spark将一系列操作转化为有向无环图,以规划执行任务。 三、Spark SQL与数据处理 1. **DataFrame ...
Spark的窗口函数是分布式数据处理中的重要工具,它允许我们在数据集上进行复杂的统计分析,尤其是在时间序列数据处理和实时流处理中应用广泛。在Spark SQL和DataFrame API中,窗口函数提供了一种灵活的方式来对数据...
在Spark 2.0.2版本中,它提供了一套高效、易用且可扩展的工具,支持各种数据处理任务,包括批处理、交互式查询(通过Spark SQL)、流处理(通过Spark Streaming)以及机器学习(通过MLlib库)。这个版本的中文文档是...
首先,Spark是大数据处理框架中的明星,它提供了DataFrame和RDD(弹性分布式数据集)等数据抽象,支持批处理、流处理和交互式查询等多种计算模式。Scala作为Spark的主要编程语言,其强大的函数式编程特性使得Spark ...
Spark 2.0.2 中文文档 Spark 2.0.2 中文文档 Spark 2.0.2 中文文档