首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Flex中创建自定义、可重用的对话框?

如何在Flex中创建自定义、可重用的对话框?
EN

Stack Overflow用户
提问于 2013-05-08 01:33:58
回答 2查看 1.2K关注 0票数 0

我正努力在Flex中实现一个可重用的对话框。

所有对话框都将是相同的大小,使用艺术家绘制的图像作为背景。

应该有一个标题的空间和一些内容。

所有对话框都将对标题使用相同的嵌入式字体,对内容使用不同的嵌入式字体。

由于某些原因,我无法理解Flex/MXML/Skins的做事方式。

下面是我正在努力实现的一个例子:http://i.imgur.com/NaXIOlY.jpg

背景图像、特定字体和位置的标题以及内容的位置。

编辑澄清:对不起,我的问题不太清楚。我知道如何创建弹出窗口和自定义组件。我搞不懂的是如何创建不同内容的不同对话框,但是所有的对话框都有相同的背景,有一个标题的位置,一个按钮的区域等等。我可以创建一个看起来像我想要的对话框,但是我必须复制每个对话框的代码,如果我想要改变什么,我必须复制它每一个对话框。

EN

回答 2

Stack Overflow用户

发布于 2013-05-08 02:03:30

你的问题非常笼统,所以这里有一个复述,给你一个关于你需要做什么的总体看法。创建一个mxml组件,并使用Adobe的DesignView构建布局。为动态值添加可绑定变量,即:

代码语言:javascript
复制
<mx:Script>
        <![CDATA[
            [Bindable]
            public var title:String;

        ]]>
    </mx:Script>

    <mx:Label id="titleLbl" text="{title}"/>

要显示弹出窗口,请使用下面的AS代码:

代码语言:javascript
复制
var popup:YourMXML = YourMXML(PopUpManager.createPopUp(this,YourMXML,true));
popup.title = "Your title";
PopUpManager.centerPopUp(popup);
票数 1
EN

Stack Overflow用户

发布于 2013-05-08 07:06:02

下面是用于创建自定义对话框的代码--我使两个标签中的text都可以绑定,这样我就可以将字符串文本分配给标题和消息,而不必担心各自的组件是否已经创建。

了解更多关于数据绑定Bindable元数据标记的信息,以了解实际发生了什么。

CustomDialog.mxml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" backgroundImage="@Embed('y3jqqq5x.jpg')" backgroundSize="100%">
<mx:Script>
    <![CDATA[

        [Bindable]private var _title:String;
        [Bindable]private var _message:String;

        public function set title(value:String):void
        {
            _title = value;

        }

        public function set message(value:String):void
        {
            _message = value;
        }

    ]]>
</mx:Script>

    <mx:Label id="lblTitle" horizontalCenter="0" y="10" text="{_title}" fontSize="30"/>
    <mx:Label id="lblMsg" width="250" height="160" horizontalCenter="0" y="100" text="{_message}" fontSize="14"/>
</mx:Canvas>

使用下面的函数在AS3代码中创建自定义对话框,如下所示

代码语言:javascript
复制
private function showAlert():void
        {
            var popup:CustomDialog = new CustomDialog();
            popup.title = "Title Goes Here";
            popup.message = "Content goes here."
            PopUpManager.addPopUp(popup, Application.application as DisplayObject, true);
            PopUpManager.centerPopUp(popup);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16431253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档