我在mac上运行Flex Builder 3,随着项目的增长 - 编译时间越来越长,越来越长.我正在使用一些SWC并且有相当数量的代码但是它应该不需要花费几分钟来构建并且每天都会崩溃吗?
哪种格式更好,可以存储Flex应用程序,SWF或SWC的图形资源?
是否有任何真正的差异,如果是的话,它们是什么?
据我所知,ActionScript中的var绑定是通过在var更改时自动触发的事件来执行的.我有几个问题:
编辑:
感谢Christophe Herreman的出色回答.但是,我从上面的问题中得到了一些后续内容.我想知道是否有人可以为我填补空白(我试着将这些问题编号为4,5,6,但出于某种原因它们出现了1,2,3!)
我已将-keep选项添加到编译器并查看生成的绑定代码.谁能解释一下如何应用这段代码?编译器似乎为每个类生成一个名为BindableProperty的类,其中包含getter和setter.这怎么折叠到我写的课上?该功能看起来有点像C#中的部分类 - 这是专门的幕后编译器功能,还是我可以自己使用的东西?
BindableProperty类仍然没有显式实现EventDispatcher,生成的类如何实现事件调度?
在问题3中,我询问了绑定到静态函数,但实际上我的意思是静态getter和setter函数.这似乎不被允许.
在FLEX应用程序中,我正在尝试"重新发送"自定义事件.即component1执行dispatchEvnet(event),component2注册事件的处理程序,处理程序的唯一功能是dispatch(event).最后,component3侦听来自component2的事件.我想要做的是类似于"重新抛出"异常的概念(和类似的原因).不同之处在于重新分派似乎在AS3(Flash 10)中不起作用.在IE中,没有任何反应,在FF3中有一个例外,说在调用component3中的处理程序时尝试将Event类型强制转换为我的CustomEvent时类型转换失败.调试器中的跟踪代码显示,在调用component3时,事件确实是一般事件,我的所有自定义内容都丢失了.应该是这样吗?
我想动态访问mxml中的一堆对象.我可以构建他们的名字/身份证.在Javascript中我可以做到getElementById(ID)获取对象.我怎么能在Actionscript中做到这一点?
我真的不能这样做,getChildByName因为它太麻烦了:我可以访问对象A,它有一个孩子B,有一个孩子C,有孩子D,E&F(他们的名字与A的名字有关).我想得到D,E和F.因为getChildByName,似乎我必须使用A来获得B,然后获得C,然后获得D,E和F.并且如果向B添加新父项(更改mxml层次结构)那么代码就会破解......我真的不想这样做.
有什么建议?谢谢!
更新:我要问的是,如何根据其名称和/或ID访问对象D,两者都是字符串.
我有一个html文本块,在TextArea中显示给用户.目前,我已将HTML作为XML对象嵌入到我的一个类中,但这似乎是一个糟糕的设计.我想将HTML放在嵌入式文件中并将其加载到XML或String对象中.
我试图搜索如何执行此操作,但我的搜索返回有关嵌入图像和字体的信息,而不是可以加载到字符串中的文本.
是否可以嵌入文本或xml文件并将其加载到Flex中的变量中?
我最近听说过Apache Pivot被转移到顶级项目类别,我想知道是谁尝试了最新版本并将其与其他RIA工具进行了比较.适当的比较类别是什么?
由于JavaFX具有不同的脚本语言,因此对Java开发人员来说似乎更容易接受.Pivot开发人员说,Pivot是Sun应该做的而不是JavaFX.
我想将一个可选的数据参数传递给一些回调,但只传递给支持单个参数的回调; 现在,我有一个中等大小的回调代码库,根本无法接受参数.如何检查Function对象支持的参数?
apache-flex reflection actionscript introspection actionscript-3
我需要在Web服务调用完成后调用FileReference.save(),但此方法有一个限制:"在Flash Player中,您只能成功调用此方法以响应用户事件(例如,在事件处理程序中)用于鼠标单击或按键事件.)否则,调用此方法会导致Flash Player抛出错误异常." (来自此处的文档)
这种限制有点模糊.这是否意味着我只能从事件处理函数中调用FileReference.save()方法,该函数被注册为某些类型的用户事件的侦听器?如果是,那么究竟哪些用户事件有效?(也许有一个事件永远不会被用户与我的应用程序交互调度,我可以为该事件类型注册一个事件处理函数,并从该函数中调用save()?)
我的困难是我无法安全地调用FileReference.save()方法,直到我的Web服务返回将用作FileReference.save()方法调用的参数的数据,因此触发FileReference的事件. save()调用实际上是一个ResultEvent,而不是一个用户事件,我很谨慎地调度一个新的(虚假)用户事件类型,以便能够触发FileReference.save()调用,除非它肯定是一个用户事件,永远不会因实际用户与我的应用程序交互而被调度.
简而言之,我现在正在做的是:我有一个注册为按钮点击的处理程序的函数.在此函数中,我进行Web服务调用以从服务器获取数据.我还有一个结果处理函数,它在Web服务调用完成时被调用,而在这里我想调用FileReference.save()方法,因为此时我知道数据已准备好保存到一份文件.但上述限制阻止我这样做 - 我收到一个错误:
Error #2176: Certain actions, such as those that display a pop-up window,
may only be invoked upon user interaction, for example by a mouse click
or button press.
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多东西来解决这个问题,比如创建一个带有FileReference.save()调用的第二个鼠标单击事件处理函数,并在超时间隔后调用它(以便让Web服务时间完成),但我保留了遇到同样的错误 - 也许这种方法不起作用,因为第二个函数没有注册为用作其参数的事件类型的事件监听器.
我是Flex开发的新手,所以也许我只是没有以正确的方式思考这个问题.如果有人可以提出另一种方法,我会非常感激.提前感谢您的意见或建议.
- 詹姆士
我可以有一个垂直显示数据而不是水平显示数据的数据网格吗?
例如,如果这是我的数据提供者:
array('firstname':'John','lastname':'Doe'),
array('firstname':'Jack','lastname':'Jill')
Run Code Online (Sandbox Code Playgroud)
我希望数据显示如下:
Fields Value1 Value2
Firstname John Jack
Lastname Doe Jill
Run Code Online (Sandbox Code Playgroud)
等等....最好的方法来实现这个..如果我必须扩展datagrid组件,请解释如何..
apache-flex ×10
actionscript ×3
air ×1
apache-pivot ×1
compilation ×1
data-binding ×1
datagrid ×1
events ×1
flash ×1
flex4 ×1
flexbuilder ×1
java ×1
javafx ×1
macos ×1
reflection ×1
ria ×1