apache-flex - AS3/Flex : How to make mxml files loaded via ViewStack see their parent's variables, 等?

标签 apache-flex actionscript-3 oop flex3

对于我正在 Flex 中处理的一个项目,我决定为每个可以使用的“主题”创建几个单独的文件。由于每个主题都需要特定的代码、图像、样式和几乎任何其他内容,因此经典的仅 css 选项实际上是不可能的。

我对这种方法有一个问题,那就是每个“子”mxml 文件无法读取在父应用程序中创建的变量等。使用 Application.application 解决了一半的问题,但任何类型的全局变量解决方案似乎对我来说都失败了。因此,代码也没有变得那么干净。

我创建了一个类,该类在主应用程序中加载,其中包含一个静态变量,我将其用作与 AS3 等效的全局变量。遗憾的是,从这些“子”mxml 文件访问它是不可能的,我只能重新启动该类,或者在主应用程序中编写一个包装函数来获取这些变量。再说一遍,这绝不是完美的,而且仍然让我无法使用在父应用程序中启动的类中的方法。

让它正常工作的最佳方法是什么?

应用程序概要:

1) 主应用程序加载多个类/包,使用正确的设置启动一些类/包等 2)主应用程序有一个 ViewStack,其中每个主题都来自外部文件(themes/ThemeName.mxml) 3) 每个主题需要访问至少 2 个由主应用程序设置的变量(通过使用加载的类和方法),有些主题可能还需要直接访问主应用程序全局可用的某些功能, - 以及特定主题 mxml。

我希望我的解释有点清楚。请提出任何可能有助于您进一步理解这一点的问题。非常感谢!

-戴夫

小更新:更多说明:我有一个类,可以让我轻松创建相机 View 。我在主应用程序中初始化并使用该类,然后将新的 (web)cam(era) 实例放入变量中,以便在需要的任何地方使用。然后, View 文件 (themes/theTheme.mxml) 以所需的方式显示 2 个摄像机。我希望 View 文件使用在主应用程序中创建的相机,这样我就不必要求主题创建人员一遍又一遍地实现所有这些。这是我为什么需要这个的一个例子。

感谢您迄今为止对我的帮助!

最佳答案

来自 PHP 背景,我明白你可能会出错的地方。它不像 php,每个文件只是一个大块代码,可以包含到其他 php 文件中。

每个 mxml 文件都是一个成熟的 Actionscript 类。您并不是“包含那些 mxml 文件”,您实际上是在主 mxml 类中创建属性,并且这些属性的类型属于“子”mxml 对象。

如果您的子 mxml 组件确实需要来自父级的一些信息,您应该将该数据传递给它们。

但是退后一点。您确定要让这些子 mxml 文件完成所有这些工作吗?它们是否只是简单的愚蠢布局,没有任何逻辑?然后你可以让主 mxml 操作它们。

关于apache-flex - AS3/Flex : How to make mxml files loaded via ViewStack see their parent's variables, 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/851581/

相关文章:

PHP 面向对象编程 - 高级技术书籍

flash - Flex声音提取并保存mp3

apache-flex - 如何在swfloader中播放YouTube视频?

actionscript-3 - addEventListener(和 removeEventListener)是否堆栈?

actionscript-3 - 同步AS3中的动态音频和代码

python - Python 中的私有(private)方法

apache-flex - 为什么加载的 SWFLoader 的宽度和高度为零?

css - 一定是我犯的一个简单错误 : Flex CSS style not working in a trival case

actionscript-3 - 闪存/AS3 : Type was not found or was not a compile-time constant

javascript - 如何使用具有对象属性的元素,例如 element.myobj.prop