- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果在 MXML 中可以完成的所有事情也可以在 ActionScript 中完成,而且很多事情在 ActionScript 中更容易完成(循环、条件等) 为什么要花时间学习 MXML?
我在这一点上的最佳理由是 MXML 的结构很好地匹配 UI 组件的视觉层次结构,并且减少了初始化 UI 的代码行数。另一方面,现实世界的 UI 通常是动态的,实现为简单的静态结构,然后根据运行时条件动态填充(在这种情况下,UI 更新无论如何都在 ActionScript 中)。也可以减少 SLOC ActionScript 需要创建一些辅助方法。
最佳答案
这取决于您的应用程序的需求,但我通常将我的设计分解为可视 block ,并使用自定义 MXML 组件来布置我的应用程序的主要区域和组件(数据面板、对话框等),使用基于 mxml 的自定义组件。然后,我将使用自定义 actionscript 组件来增强它,在这些组件中,我需要比内置布局组件提供的更多视觉灵 active 。 MXML 很方便,因为它使得在舞台上获取组件并设置它们的各种属性和样式设置变得非常容易。
以两个相同的登录面板为例:
在 MXML 中:
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="290" height="148" title="Login">
<mx:Label text="User name:" width="80" textAlign="right" y="8" x="8"/>
<mx:Label text="Password:" width="80" textAlign="right" y="38" x="8"/>
<mx:TextInput id="txtUsername" maxChars="20" y="8" x="90"/>
<mx:TextInput id="txtPassword" displayAsPassword="true" y="38" x="90" maxChars="20"/>
<mx:Button x="185" y="68" label="Login" id="btnLogin" click="doLogin()"/>
</mx:Panel>
package
{
import flash.events.MouseEvent;
import mx.containers.Panel;
import mx.controls.Button;
import mx.controls.Label;
import mx.controls.TextInput;
public class MyLoginPanel extends Panel
{
private var _unLabel:Label;
private var _passLabel:Label;
private var _txtUsername:TextInput;
private var _txtPassword:TextInput;
private var _btnLogin:Button;
public function MyLoginPanel()
{
}
override protected function createChildren():void
{
super.createChildren();
this.width = 290;
this.height = 148;
this.title = "Login";
this.layout = "absolute";
_unLabel = new Label();
_unLabel.text = "User Name:";
_unLabel.width = 80;
_unLabel.setStyle("textAlign", "right");
_unLabel.move(8, 8);
this.addChild(_unLabel);
_passLabel = new Label();
_passLabel.text = "Password:";
_passLabel.width = 80;
_passLabel.setStyle("textAlign", "right");
_passLabel.move(8, 38);
this.addChild(_passLabel);
_txtUsername = new TextInput();
_txtUsername.move(90, 8);
this.addChild(_txtUsername);
_txtPassword = new TextInput();
_txtPassword.move(90, 38);
_txtPassword.displayAsPassword = true;
this.addChild(_txtPassword);
_btnLogin = new Button();
_btnLogin.label = "Login";
_btnLogin.move(185, 68);
_btnLogin.addEventListener(MouseEvent.CLICK, doLogin);
this.addChild(_btnLogin);
}
}
}
关于actionscript-3 - 为什么要使用 MXML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261938/
我想做的是:创建一个带有一些子组件的 MXML 组件,然后通过 MXML 扩展它以创建一个具有更多子组件的新组件,而不会丢失原始集合。 换句话说 创建一个组件 bc.mxml 然后将其
正如标题所暗示的,“组件”(New –> MXML 组件)和“模块”(新建 –> MXML 模块)有什么区别? 谢谢, 大卫 最佳答案 模块被编译成 SWF 并在运行时使用 ModuleLoader
我一直在尝试创建一个自定义 mxml 组件来扩展另一个自定义 mxml 组件(即 MyMXMLComponent -> BaseMXMLComponent -> Group)。 我一直在读到,尝试向
在我的应用程序中使用 Flex-Blazeds-java...,在我的 Flex 应用程序端有两个 mxml 文件 Main.mxml 登录.mxml 在 Main.mxml 文件中有一个名为 Log
你好 我有一个正则表达式的问题。我在 MXML 中有一个 RegExpValidator,我希望它在源包含 a 或 b 时无效 我的 RegExpValidator 是 我的表达式是expressi
如果在 MXML 中可以完成的所有事情也可以在 ActionScript 中完成,而且很多事情在 ActionScript 中更容易完成(循环、条件等) 为什么要花时间学习 MXML? 我在这一点上的
我有一个宽度设置为 100% 的组合框。但是,当其中一个元素变大时,组合框也会变大,从而在我的应用程序中产生滚动条和其他丑陋之处!如何将组合框包含在其父项中? 注意,如果下拉列表较大,只要关闭的组合框
这是我尝试使用 MXML 库解析的 XML 文件: REQ 4567 192.168.1.1
我有一个可以运行的视频电话应用程序,但我现在正在尝试从数据库中获取一些数据。我对 PHP 最满意。 我正在尝试从名为“chat”的数据库中的“users”表获取 1 个值,其中 status=1(状态
我想在 AdvancedDataGrid 中提供我自己的 sortItemRenderer,如下所示: MyRenderer 是我编写的一个类,但 Flex 没有看到它并给出“未找到定义”错误,因为
当我在 MXML 组件中定义自定义属性时,我还想定义该属性的一组可能值,以便在调用代码完成函数时让 Flex Builder 显示(自定义属性的可能值)。 知道怎么做吗? 最佳答案 使用 [Inspe
我有一个只能在 classA 中使用的 classB。但是,classA 被编写为 mxml,而不是 actionscript 代码。是否可以在 MXML 中嵌套类或在同一个 .mxml 文件中的根标
我正在学习 Flex 并发现了一些奇怪的行为。当我尝试编译我的代码时,我抛出了这个错误 - 错误:调用可能未定义的方法 updateStory。我以前以这种方式使用过方法调用,但在这种情况下无法发现问
在我的MXML文件,我有一个带有三个 vbox 的选项卡导航器。
我怎么说 MXML 组件在某个包中?好吧,它在不同的文件夹中......我知道怎么做 ActionScript......但是当我在 MXML 中这样做时,我没有明确声明包,因为我不知道如何以及何时将
这是类(class): package fnc { import mx.containers.Canvas; public class Deck extends Canvas {
跳出框框思考... 可以采取哪些可能的基本方法来创建可以运行 Java 的 Flex 组件? 我知道我可以轻松地使用 Flex 浏览或启动 Java 应用程序,但有些事情只有当我可以从 MXML 组件
我有一个带有表单的 MXML,里面有两个 TextInput。我讨厌在 MXML 文件中包含任何代码(我来自 JavaScript 格式)所以我使用了 mx:Script source="extern
从本教程 http://www.brighthub.com/internet/web-development/articles/11010.aspx 我找到了下面的代码。有没有办法解决这个问题,所以
是否有一种简单的方法可以在 MXML 图形中绘制不涉及贝塞尔曲线的圆弧?或者我应该创建自己的组件? 谢谢! f 最佳答案 我最终创建了自己的 mxml 图形组件来绘制弧线。我覆盖 Ellipse Sp
我是一名优秀的程序员,十分优秀!