Apache Flex 4.9.1 playerglobalHome config

在使用 Apache Flex 4.9.1 运行一个测试项目的时候,出现了错误,ANT告知我找不到 (playerglobalHome) 变量。

这个变量是在 frameworks/flex-config.xml 中出现的。我比较了 Apache Flex 4.9.1Adobe Flex 4.6.0flex-config.xml 文件,发现有源码中有两个地方将原来的 libs/player 替换成了 {playerglobalHome}

要解决这个问题,有两个方案:

  1. 设置环境变量 PLAYERGLOBAL_HOME ,值为 %FLEX_HOME%\frameworks\libs\player 即可;
  2. 修改flex-config.xml为原来的样子。

我把所有的 playerglobal.swf 都放在了一个独立的目录,可以让多个版本的Flex SDK共享。很壮观吧……

playerglobalhome

参考文章:

在Flash Builder 4.7的纯AS项目中使用Flex SDK

在Flash Builder 4.7的纯AS项目中使用Flex SDK

现象

将Flash Builder升级到4.7版本后,我发现以前建立的 ActionScript 项目会默认使用 AIR SDK,而不是使用 Flex SDK。这导致我以前的项目无法使用。因为某些类依赖Flex SDK中提供的 TLF 框架,或者只有Flex SDK才有的 SpriteAssets 等Class。

old_project

查看项目属性,会发现编译器默认为AIR SDK 3.4,且无法修改:

air_sdk_compiler

解决方案

用文本编辑器打开项目文件中的 .actionScriptProperties,搜索 useFlashSDK,将其值替换成 false

use_flash_sdk

刷新一次项目,再次查看项目属性,发现编译器已经改成了 Flex SDK

flex_sdk_compiler

在64位操作系统上使用FlashDevelop的Debug功能

最近用上了FlashDevelop。与Flash Builder比起来,它确实优点很多:小巧,快速,灵活的定制功能,免费且开源。

使用FlashDevelop开发AS/Flex/AIR程序的时候,可以使用Flex SDK来编译和调试。Flex SDK使用JAVA写成,需要系统中安装JAVA虚拟机(JVM)。而我的系统中已经安装了64位的JAVA虚拟机。

在调试的时候,FlashDevelop报告了下面的错误。

Debugger startup error: System.BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
在 net.sf.jni4net.jni.JNI.Dll.JNI_GetDefaultJavaVMInitArgs(JavaVMInitArgs* args)
在 net.sf.jni4net.jni.JNI.Init()
在 net.sf.jni4net.jni.JNI.CreateJavaVM(JavaVM& jvm, JNIEnv& env, Boolean attachIfExists, String[] options)
在 net.sf.jni4net.Bridge.CreateJVM()
在 net.sf.jni4net.Bridge.CreateJVM(BridgeSetup setup)
在 FlashDebugger.DebuggerManager.Start(Boolean alwaysStart)

FlashDevelop是直接调用Flex SDK中的fdb进行调试的,出现这个错误的原因,是因为fdb仅支持32位的JVM。

继续阅读在64位操作系统上使用FlashDevelop的Debug功能

【转】Apache Flex 4.8.0 近况及试用

本文转自Limbo-Nova:http://www.limbo-nova.com/blog/2012/07/software-development/flash-dev/apache-flex-4-8-0-news-trial/

Apache Flex 工作

  • Apache Flex 团队目前正在测试一个Apache Flex 4.8.0的发行候选版本。Apache Flex 4.8.0 是Adobe Flex 4.6.0的等同版本。当前的主要工作是保证在新的Apache license下,能够继续使用Flex框架所有的特性;下个阶段会进行bug修复,新功能和新组件的实现工作。如果想自行build可以Check out这个说明文档
  • 商标问题已经大量清除。
  • JIRA已经导入了Adobe bug tracker 所有问题。
  • 问题附件涵盖直到2012年1月30日之前的SDK,DMV和Automation bug。
  • Mustella 测试框架已经捐献并做了一些测试。
  • 对于那些想自己编译编译器,框架等代码的人,基于ANT的编译脚本已经重新设计并且非常易于使用。Check out 上面那个README文档和相关的env.properties模板文件获取入门信息。 继续阅读【转】Apache Flex 4.8.0 近况及试用

【译】使用ConstraintLayout创建复杂的表单布局

【译】使用ConstraintLayout创建复杂的表单布局

原文地址:Flex – Complex Form layouts with ContraintLayout

Form容器默认使用FormLayout布局排列子表单项。FormLayout继承自VerticalLayout,它对FormItem容器进行纵向排列。如果你想实现纵向的排列表单,这当然好,但是很多时候往往不是这样。看看下面的例子。


Get Adobe Flash player

通常情况下,我看到开发者在实现一个表单布局的时候,会放弃FormLayout布局而是使用一堆嵌套的HGroup和VGroup,尽管这种做法有点傻X,效果也不太理想。

还记得Flex 3中的 ConstraintRowsConstraintColumns 么?它们在Flex 4中换了个 ConstraintLayout 的马甲又出现了,这个 Layout 可以用在 Form 中。我发现许多 Flex 开发者不知道这件事,这不奇怪,因为它们在官方文档中的说明少得可怜。而且,如果使用 Google 搜索它,你只能得到 MX 组件的相关内容。

上面的表单在 Spark Form 容器中使用 ConstraintLayout 替代了 FormLayout ,这个 Layout 为 FormItem 容器提供了类似于网格布局的功能,同时实现跨行、跨列。

<?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"
               viewSourceURL="srcview/index.html">
    <s:layout>
        <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Form>
        <s:layout>
            <s:ConstraintLayout>
                <s:constraintRows>
                    <s:ConstraintRow id="row1" />
                    <s:ConstraintRow id="row2"/>
                    <s:ConstraintRow id="row3"/>
                </s:constraintRows>
                <s:constraintColumns>
                    <s:ConstraintColumn id="col1" width="100"/>
                    <s:ConstraintColumn id="col2" width="100"/>
                    <s:ConstraintColumn id="col3" width="100"/>
                </s:constraintColumns>
            </s:ConstraintLayout>
        </s:layout>

        <s:FormItem label="First Name"
                    left="col1:3" right="col2:53" top="row1:0" bottom="row1:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="Last Name"
                    left="col2:53" right="col3:3" top="row1:0" bottom="row1:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>

        <s:FormItem label="Address"
                    left="col1:3" right="col3:3" top="row2:0" bottom="row2:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>

        <s:FormItem label="City"
                    left="col1:3" right="col1:3" top="row3:0" bottom="row3:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="State"
                    left="col2:3" right="col2:3" top="row3:0" bottom="row3:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="Zip"
                    left="col3:3" right="col3:3" top="row3:0" bottom="row3:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
    </s:Form>

</s:Application>

下面的内容和本文主题没什么关系,但我还是要说一下。我使用了自定义的 FormItem 皮肤 CondensedStackedFormItemSkin ,这个皮肤移除了 sequenceLabelDisplayhelpContentGroup 这两个外观部件,因为它们是不必要的,而且占用了太多空间。你可以从 ShinyLib 库中得到它们,你会发现它非常易用。

让旧版本的 Flash IDE 支持更新的 Flash Player/AIR 功能

2015-04-03更新: 加入更新 Adobe AIR 的相关内容。


今天在论坛上看到一篇文章:H264VideoStreamSettings无法在cs4里面使用吗?,并做了回复。记录在这里,希望对更多的人有帮助。

H264VideoStreamSettings是Flash Player 11才开始支持的功能,但目前Aodbe发布的最新版的Flash CS5.5,都不支持将Flash Player 11作为目标播放器版本发布。这个问题很容易解决,但涉及到的东西却比较多,我在这里将一一讲解。

首先来个Setp by Step,这里以Flash Player CS5.5为例,但Flash CS4也没有问题(Flash CS3我就不确定了): 继续阅读让旧版本的 Flash IDE 支持更新的 Flash Player/AIR 功能

无力吐槽:观近期Adobe Flash Platform战略有感

注:下方的所有言论,仅限吐槽。中间使用的所有头衔均系我自封,所有脏话仅限于增强文章的感情色彩(吐槽专用),无任何的针对性,也不会影响我对Adobe这伟大公司的崇敬之情,勿喷勿喷……


今天一早看到 Adobe放弃Linux平台除Chrome浏览器之外的Flash Player插件 的消息,不禁心头一震,XX一紧。心想你这败家子 放弃Linux上的AIR 也就好了,现在又放弃Linux上的 Flash PLayer?你让我这 在Linux上用Vim写AS3 的家伙怎么玩?你还不如直接把Windows也放弃掉把……

但接着有看到了 Adobe对于Flex的看法以及对未来Flex的承诺Adobe Flash runtimes路线图 两篇文章,心情逐渐放松了点。

就在我的上篇 吐槽文 中,我写道:

说不定那天Google想了想,老子也把Chrome Only的Native Client拿来做强插?

没想到才两天,强插就真的发生了,只是主语变成了Adobe。

从Adobe对Flex的承诺来看,Adobe不但拿出了足够的诚意。也足够傻B,摘录几点如下: 继续阅读无力吐槽:观近期Adobe Flash Platform战略有感

[转]Adobe对于Flex的看法以及对未来Flex的承诺

本文转自:Pilihou’s Blog

原文地址:http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/flex/pdfs/flex_roadmap.pdf

Adobe认为当前Flex是企业和数据中心应用程序开发的最好解决方案,把Flex捐献给社区推动性的开源项目是确保Flex今后几年的持续发展和成功。在这种新的模式下,社区将负责Flex SDK的维护和开发,而Adobe将继续开发工具和运行时。本文档提供了Adobe对于Flex捐献给开源项目的看法,以及对未来Flex的承诺。

Adobe Flex

Adobe Flex是为开发针对桌面浏览器中的Adobe Flash Player,桌面Adobe AIR,以及移动设备Adobe AIR的富互联应用(RIAs)的软件开发工具包(SDK)。SDK提供了一个以ActionScript 3编写的统称为Flex框架的组件库,ActionScript 3是Flash平台的面向对象编程语言。除了编译器和调试工具之外,SDK定义了MXML,一个声明性的XML语法,开发人员可以使用它来创建和维护复杂的用户界面。 继续阅读[转]Adobe对于Flex的看法以及对未来Flex的承诺

Flex编译器参数中-swf-version与-target-player之关系

Flex编译器参数中-swf-version与-target-player之关系

  • 2014-04-11更新:更新Flash Player 13.0/AIR 13.0正式版,加入对Flash Player和AIR的版本号开始同步的说明。
  • 2014-02-22更新:更新Flash Player 13.0/AIR 13.0 beta版。
  • 2014-01-18更新:更新Flash Player 12.0/AIR 4.0正式版。
  • 2013-12-11更新:更新Flash Player 11.9/AIR 3.9正式版。
  • 2013-04-16更新:更新Flash Player 11.7/AIR 3.7正式版。
  • 2013-03-10更新:更新Flash Player 11.6/AIR 3.6正式版以及beta 11.7。
  • 2012-11-07更新:更新Flash Player 11.5/AIR 3.5正式版发布日期。
  • 2012-10-10更新:加入Flash Player 11.5/AIR 3.5的对应关系;加入发布日期列;修改文章结构和部分内容。
  • 2012-08-27更新:加入Flash Player 11.4/AIR 3.4的对应关系。
  • 2012-03-20更新:本篇文章只讲了Flex SDK的情况,但Flash IDE也能通过修改配置文件的方式支持新的Flash Player功能,详见这里:让Flash支持更新的Flash Player功能
  • 2012-04-08更新:加入AIR的版本说明;加入Flash Player 11.3的对应关系。

注意

由于我不再进行 Flash 开发,这个列表可能不会再更新。


Flex 4.6 SDK中,可以发现framework/flex-config.xml中的默认-swf-version的值变成了14,而-target-player则变成了11.1。

记得在Flash Player 10.2发布的时候,为了使用Flash 10.2提供的原生位图鼠标光标功能,需要在编译的时候将-swf-version编译器属性值设置为11。以此推算,14这个值是针对Flash Player 11.1的。

那么-swf-version和-target-player的对应关系如何?见下表: 继续阅读Flex编译器参数中-swf-version与-target-player之关系