我有一堆基于SkinnableContainer的自定义控件.
在设计时添加控件时,我可以使用标签上的skinClass属性指定外观.
我需要在运行时添加一些这些元素,我无法弄清楚如何为我的控件指定skinClass.
例如.
var something:CustomThing = new CustomThing();
/* mistery code here to attach the skin ? */
addElement(something);
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
谢谢!
我正在尝试使用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中.
有什么办法如何编译行家/ 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) 如何打开隐藏的新窗口?(注意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);,窗口将快速打开然后隐藏,然后在我实际显示它时重新显示,这非常难看.
我想这样做是为了能够在显示之前加载内容并使窗口适合该大小.
嘿那里 - 我需要从MAC上的FlashBuilder4 AIR应用程序中删除一个底栏.我已将config.xml文件设置为:
<systemChrome>none</systemChrome>
<transparent>true</transparent>
Run Code Online (Sandbox Code Playgroud)
虽然这删除了窗口bgcolor,顶部栏和边框,但我仍然在我的应用程序中收到一个底栏.我该如何删除它?谢谢,任何帮助表示赞赏!
我想在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) 嗨,我是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) 我是Flex 4和ActionScript 3的新手.所以在阅读时,我发现了很多次这些文件扩展名.据我所知,应用程序开发人员将MXML与ActionScript结合使用,以使用Adobe Flex等产品开发富Internet应用程序.但我无法理解这些文件和actionscript文件是什么.as文件.
但是当某个地方我找到了这些扩展swf,fla然后它让我感到困惑.
是.as,是.fla,.swf是相同的文件?如果没有,那么这些有什么区别?
正如我提到的那样,我对Flex和ActionScript非常陌生,所以我希望专家能够容忍这个问题是假的还是不好的
当 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)

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