标签: flex4

如何在Flex 4中在运行时设置外观

我有一堆基于SkinnableContainer的自定义控件.

在设计时添加控件时,我可以使用标签上的skinClass属性指定外观.

我需要在运行时添加一些这些元素,我无法弄清楚如何为我的控件指定skinClass.

例如.

var something:CustomThing = new CustomThing();

/* mistery code here to attach the skin ? */

addElement(something);
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

谢谢!

runtime skin gumbo flex4

5
推荐指数
1
解决办法
7544
查看次数

mxmlc和框架链接 - 如何将链接指定为rsl

我正在尝试使用ant构建我的flex 4项目.在Flash Builder 4中,在项目属性中,可以将"框架链接"设置为"合并到代码","运行时共享库​​(RSL)"或"使用SDK默认(运行时共享库​​)"之一.如何在build.xml中将等效项设置为mxmlc选项?

我当前的build.xml如下所示:

<target name="myapp">
    <mxmlc 
        file="${PROJECT_ROOT}/myapp.mxml" 
        output="${DEPLOY_DIR}/myapp.swf"
        actionscript-file-encoding="UTF-8"
        keep-generated-actionscript="false"
        warnings="false" optimize="true" incremental="false" >

        <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> 

        <source-path path-element="${FLEX_FRAMEWORKS}"/> 

        <compiler.debug>true</compiler.debug>

        <runtime-shared-library-path path-element="${FLEX_FRAMEWORKS}/libs/framework.swc">
            <url rsl-url="framework_4.0.0.14159.swz"/>
            <url rsl-url="framework_4.0.0.14159.swf"/>
        </runtime-shared-library-path>                       

        <compiler.source-path path-element="src"/>

        <!-- List of external libraries -->
        <compiler.source-path path-element="${MY_LIB}/src" />

        <!-- List of SWC files or directories that contain SWC files. -->
        <compiler.library-path dir="libs" append="true">
            <include name="*.swc" />
        </compiler.library-path>

        <copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swz"/>
        <copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swf"/>

    </mxmlc>
</target>
Run Code Online (Sandbox Code Playgroud)

我假设设置runtime-shared-library-path指令并将框架swf,swz文件复制到我的目标文件夹会使事情有效,但事实并非如此.

我评估这是否有效的方式如下:我使用自定义预加载器,为了工作,我需要将框架链接作为RSL.使用"合并到代码",我的预加载器卡在某一点,并没有进展到我的应用程序SWF.这与我在使用上面的build.xml时看到的行为相同,这让我觉得SWF正在构建时将框架链接合并到代码中(而不是RSL链接).

与此相关的问题是如何确定我的swf是否使用RSL.我想我可以看一下编译输出的大小.但似乎应该有一种方法来判断我是否正在使用外部框架文件,或者在我不知情的情况下将其捆绑到SWF中.

ant mxmlc rsls flex4

5
推荐指数
1
解决办法
5891
查看次数

如何在没有任何*.mxml文件的情况下编译maven/flex项目?

有什么办法如何编译行家/ Flex项目不包含任何*的.mxml?Flex项目包含ActionScript类只(即"SRC /柔性"目录包含*.作为唯一的文件).我的pom.xml在这里:

<groupId>com.test</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<name>test</name>
<packaging>swf</packaging>
<build>
    <sourceDirectory>src/main/flex</sourceDirectory>
    <testSourceDirectory>src/test/flex</testSourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.sonatype.flexmojos</groupId>
            <artifactId>flexmojos-maven-plugin</artifactId>
            <version>3.8</version>
            <extensions>true</extensions>
            <dependencies>
                <dependency>
                    <groupId>com.adobe.flex</groupId>
                    <artifactId>compiler</artifactId>
                    <version>4.5.0.18623</version>
                    <type>pom</type>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>com.adobe.flex.framework</groupId>
        <artifactId>flex-framework</artifactId>
        <version>4.5.0.18623</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>com.adobe.flexunit</groupId>
        <artifactId>flexunit</artifactId>
        <version>0.85</version>
        <type>swc</type>
        <scope>test</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

"mvn package -e"抛出此错误:

[ERROR] Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:3.8:compile-swf (default-compile-swf) on project test: Source file not expecified and no default found! -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:3.8:compile-swf (default-compile-swf) on project q-integra-scorecard-ldservice: Source file not …
Run Code Online (Sandbox Code Playgroud)

maven-2 actionscript-3 flex4

5
推荐指数
1
解决办法
4210
查看次数

Adobe Air:隐藏启动本机窗口

如何打开隐藏的新窗口?(注意visible="false")

<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" 
      showStatusBar="false"
      resizable="false" 
      visible="false">
Run Code Online (Sandbox Code Playgroud)

如果我以这种方式声明一个窗口,然后调用this.open(false);,窗口将快速打开然后隐藏,然后在我实际显示它时重新显示,这非常难看.

我想这样做是为了能够在显示之前加载内容并使窗口适合该大小.

apache-flex air windows flex4

5
推荐指数
1
解决办法
2685
查看次数

从窗口+ AIR应用程序中删除底栏

嘿那里 - 我需要从MAC上的FlashBuilder4 AIR应用程序中删除一个底栏.我已将config.xml文件设置为:

<systemChrome>none</systemChrome>
<transparent>true</transparent>
Run Code Online (Sandbox Code Playgroud)

虽然这删除了窗口bgcolor,顶部栏和边框,但我仍然在我的应用程序中收到一个底栏.我该如何删除它?谢谢,任何帮助表示赞赏!

air flex4 flashbuilder4

5
推荐指数
1
解决办法
1296
查看次数

如何将MXML文件内嵌到另一个MXML文件中?

我想在MXML文件中包含一个MXML文件,就像使用include指令在AS3中包含外部文件一样.使用include伪指令在编译时将外部文件中的代码放入原始文件中,并将其置于同一范围内.

例如,

Application.mxml:

<Application>

    <source="external.mxml"/>

</Application>
Run Code Online (Sandbox Code Playgroud)

External.mxml:

<Styles/>

<Declarations>
    <Object id="test"/>
</Declarations>
Run Code Online (Sandbox Code Playgroud)

我需要将此代码/ mxml/xml保留在原始范围内的外部文件中.不要问我为什么要这样做.

另一个例子.这是我当前的代码(简化)全部在1 mxml文件中:

...

File1.mxml
<Button click="clickHandler()"/>

<Script>
public function clickHandler():void {

}
</Script>
Run Code Online (Sandbox Code Playgroud)

...

这就是我想要的:

...

File1.mxml
<Group>

    <source="File2.mxml"/>

    <Button click="clickHandler()"/>

<Group>


File2.mxml
<Script>
public function clickHandler():void {
    trace(this); // File1.mxml
}
</Script>
Run Code Online (Sandbox Code Playgroud)

...

我想将我的代码拆分成一个单独的文件......

~~ 更新 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~

虽然不是我要求使用"代码隐藏"方案,但实现了将代码从视图中分离出来的部分功劳.因此,我创建了一个MXML文件,MyGroup.mxml或MyGroup.as,并扩展了包含clickHandler代码的Group.

这个方法的问题是我被锁定到我正在扩展的类类型,硬编码视图.因此,例如,如果我要拆分为单独文件的MXML类是Group,则必须扩展Group.

我已经完成了这项工作的项目,但并不好.人们开始在类后面的代码中设置样式和可视方面或组/查看特定属性,如果我们需要更改它或布局,我们最终将所有这些依赖项放到容器中.它变得一团糟.另外,使用Code Behind,您无法重用它(重用方式包括styles.as被重用).所以这不是一个解决方案,但我想我会提到它.

这是一个示例背后的代码,

MyGroupBehind.mxml:

<Group>

   <Script>
   public function clickHandler():void {
       trace(this); // File1.mxml
   }
   </Script>

</Group>
Run Code Online (Sandbox Code Playgroud)

MyGroupAhead.mxml:

<MyGroupBehind>

    <Button click="clickHandler()"/>

</MyGroupBehind>
Run Code Online (Sandbox Code Playgroud)

apache-flex mxml flex4

5
推荐指数
1
解决办法
3869
查看次数

根据Flex中的多个条件更改数据网格单元格的背景颜色

嗨,我是Adobe Flex的新手,如果我的问题听起来很愚蠢,请道歉.无论如何这里是.我正在尝试简单的数据网格,它基本上检查2个条件1)如果艺术家是01而专辑是'专辑01',则将背景设置为列'年'中的相应单元格.

使用我的下面的代码'设置样式'到背景颜色,因为属性不起作用但更改字体颜色正在工作,其次我不知道如何编写代码以使上述嵌套条件工作?如果有人能在这方面帮助我,我将非常感激.谢谢!提前.

下面是代码:Newdatagrid.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 

           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955"          minHeight="600" >
<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.controls.Alert;
        [Bindable]
        public static var initDG:ArrayCollection = new ArrayCollection([
            {Artist:'01', Album:'Album 01', Year:'2008'},
            {Artist:'01', Album:'Album 02', Year:'2009'},
            {Artist:'03', Album:'Album 03', Year:'2007'},
            {Artist:'03', Album:'Album 04', Year:'2003'},

        ]); 

    ]]>

</fx:Script>


<s:VGroup>
    <s:DataGrid id="myGrid" width="360" dataProvider="{initDG}">   
        <s:columns>
            <s:ArrayList>
                <s:GridColumn dataField="Artist"    headerText="Artist" itemRenderer="CellRenderer"/>
                <s:GridColumn dataField="Album" headerText="Album" itemRenderer="CellRenderer"/>
                <s:GridColumn dataField="Year" headerText="Year" itemRenderer="CellRenderer"/>
            </s:ArrayList>
        </s:columns>       
    </s:DataGrid> 
</s:VGroup>
</s:Application>
Run Code Online (Sandbox Code Playgroud)

渲染:

<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                    implements="mx.controls.listClasses.IDropInListItemRenderer"> …
Run Code Online (Sandbox Code Playgroud)

apache-flex actionscript-3 flex4 flex4.5

5
推荐指数
1
解决办法
9495
查看次数

fla,swf和as文件之间的区别

我是Flex 4和ActionScript 3的新手.所以在阅读时,我发现了很多次这些文件扩展名.据我所知,应用程序开发人员将MXML与ActionScript结合使用,以使用Adobe Flex等产品开发富Internet应用程序.但我无法理解这些文件和actionscript文件是什么.as文件.
但是当某个地方我找到了这些扩展swf,fla然后它让我感到困惑.
.as,是.fla,.swf是相同的文件?如果没有,那么这些有什么区别?

正如我提到的那样,我对Flex和ActionScript非常陌生,所以我希望专家能够容忍这个问题是假的还是不好的

flash fla actionscript-3 flex4

5
推荐指数
1
解决办法
5301
查看次数

如何在失败时访问 HTTP 响应正文?

当 Web 服务调用失败并且调用我的“故障”事件侦听器时,如何访问 HTTP 响应正文?我可以看到原始消息,但找不到访问响应的方法。

这是我调用网络服务的方式

var connect: HTTPService = new HTTPService;
connect.url = "https://app.XYZ.org/services/code?format=xml";
connect.method = "POST";
connect.contentType = "application/x-www-form-urlencoded";
connect.showBusyCursor = true;
connect.resultFormat = "xml";
connect.addEventListener("result", retrieveResults);
connect.addEventListener("fault", retrieveResults);
var params:Object = new Object;
params.username = user;
params.password = password;
params.code = "123";
connect.request = params;
connect.send();
Run Code Online (Sandbox Code Playgroud)

和我的事件处理函数

private function retrieveResults(event:Event): void
{
  var success:Boolean = event.type == ResultEvent.RESULT;
..
}
Run Code Online (Sandbox Code Playgroud)

信息

apache-flex actionscript-3 httpservice flex4

5
推荐指数
1
解决办法
708
查看次数

2020 年 12 月之后 Flex/Flash 应用程序会发生什么变化?

我了解 Adob​​e 将在 2020 年 12 月停止支持 Flash。所有主要浏览器也可能会在 2020 年 12 月之后停止支持。我有一个 Adob​​e Flex/Flash 应用程序,目前正在使用中。考虑到上述事件,我有哪些选择?

apache-flex flash adobe flex3 flex4

5
推荐指数
1
解决办法
1771
查看次数