让我们说我有一个Flex 3 mxml组件,称之为A. A有一个名为'b'的get/set属性.在AI中有另一个内部组件C,使用mxml指定.当在mxml中"实例化"组件A时,我可以在声明时指定b的值,一切正常.但是,当我使用Actionscript初始化组件时,我必须先将组件添加到渲染容器中,然后才能设置所述组件的属性(在本例中为"b").当属性'b'的setter以某种方式访问A中的C时会发生这种情况.
所以,这在运行时失败了(它说C是null)......
var a:A = new A();
a.b = "woopy"; //Sets the Label (declared in mxml) withn A to "woopy"
this.addChild(a);
Run Code Online (Sandbox Code Playgroud)
另一方面,以下任何一种都可行
<customNamespace:A b="woopy"/>
Run Code Online (Sandbox Code Playgroud)
要么
var a:A = new A();
this.addChild(a);
a.b = "woopy"; //Sets the Label (declared in mxml) withn A to "woopy"
Run Code Online (Sandbox Code Playgroud)
如图所示,在将组件添加到容器后设置属性时,不会引发运行时错误消息.好吧,这是有道理的,我想在组件添加到容器之前,实际上并没有创建组件的内部.不过,这有点烦人.有没有办法保证组件内部完全呈现而不将其添加到容器中?当我使用actionscript vs mxml时,我不喜欢它的感觉.我想要一个解决方案,以便基本上在没有属性"arguments"的mxml中声明A等同于在AS中使用new运算符声明A. 至少,就A的内部状态而言.
我试图在Flex 3中为高级数据网格控件设置行背景颜色.是否有人知道使用样式函数是否可行.目前我的样式功能如下:
public function myStyleFunc(data:Object, col:AdvancedDataGridColumn):Object
{
if (data["status"] == "PRICING")
return {color:0xFF0000 , fontWeight:"bold" , backgroundColor:0xFF0000};
// Return null if the Artist name does not match.
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是背景颜色不会改变.
我听说葡萄藤上我可能需要覆盖一些方法来启用背景颜色属性.
任何帮助,将不胜感激 .
关心卡尔
Flex应用程序是否有可用于Web Developer或Firebug工具栏以检查UI元素的工具?
基本上在复杂的UI控件层次结构中,您可以浏览元素并查看x和y坐标,宽度,高度,id等属性.
我对可以在运行时执行此操作的工具感兴趣,因为大多数属性都是动态的.
我正在构建一个需要在两种不同的部署方案下运行的Flex应用程序:
首先,该应用程序将托管在Web上.SWF加载一些外部资源(图像,文本),因此需要网络访问,这是Flex Builder 3默认构建标志"-use-network=true".我不需要做任何特别的事情; 它只是工作.
其次,应用程序将写入CD并启用自动运行以启动托管SWF的index.html.SWF 仍然需要能够加载相同的外部资源,这些资源驻留在子文件夹中的CD上.由于这些文件位于CD上,因此它们被视为本地文件,因此Flash安全性要求使用标志来构建SWF "-use-network=false".我将它添加到Flex项目的Properties对话框中"Flex Compiler"下的"Additional compiler arguments"文本框中.
这一切都按预期工作,但必须手动修改Flex Builder项目设置以根据具体情况添加或删除该标志是很繁琐的.
理想情况下,我想只构建一次项目并拥有多个输出文件夹:一个用于网络部署方案,另一个用于本地部署方案.
最好的方法是什么?是转向Ant构建的方式,还是有更简单的方法?如果Ant构建配置是正确的方法,您是否有一个示例来共享这样的多个构建配置?
谢谢你的帮助!
我正在尝试在Flex中嵌入一个字体,我正在使用的代码看起来与示例相同,但是会抛出错误.这是我写的代码:
[Embed(source="data/posca_mad_thrasherz/posca_mad_thrasherz.ttf",
fontName = "fontGraffiti",
fontWeight = "bold",
mimeType="application/x-font")];
private var funFont:Class;
Run Code Online (Sandbox Code Playgroud)
但我得到错误,"元数据需要一个相关的定义." 我似乎无法摆脱它.有任何想法吗?
在AS3项目中,我们可以在根类的构造函数的第一行中访问loaderInfo.这意味着整个AS3应用程序可以利用loaderInfo对象.
但是,在Flex中,似乎在发送applicationComplete事件之后,loaderInfo对象才可用.这对我来说是有问题的,因为其他组件(需要利用loaderInfo)在发送applicationComplete事件之前很久就被初始化了.
我肯定错过了什么.谢谢大家的帮助!:)
在我的MXML文件中,我有一个带有三个vbox的标签导航器.
<mx:TabNavigator width="624" height="100%">
<mx:VBox label="Currents Quote"
width="100%">
</mx:VBox>
<mx:VBox label="Quote Comparison"
width="100%">
</mx:VBox>
<mx:VBox label="Reports"
width="100%">
</mx:VBox>
</mx:TabNavigator>
Run Code Online (Sandbox Code Playgroud)
在VBox"当前报价"中,我想要绘制一个圆圈.我怎样才能实现它?
我有一个Flex 3.5应用程序,它将用于多种用途,并且作为我想要指示应用程序所处模式的视觉更改的一部分,我想要更改其背景颜色.
目前,应用程序标记如下所示:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:com="ventures.view.component.*"
xmlns:views="ventures.view.*"
layout="absolute"
preinitialize="onPreInitialize()"
creationComplete="onCreationComplete()"
applicationComplete="onApplicationComplete()"
click="onClick(event)"
enabled="{(!chainController.generalLocked)}"
backgroundGradientColors="[0xFFFFFF, 0xFFFFFF]"
>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用绑定,对于backgroundColor和backgroundGradientColors属性:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
...
backgroundColor="{app_background_color}"
>
Run Code Online (Sandbox Code Playgroud)
-和-
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
...
backgroundGradientColors="{app_background_color}"
>
Run Code Online (Sandbox Code Playgroud)
但是对于前者的绑定是不允许的,而后者则有一个警告:
数据绑定将无法检测到"app_background_color"的分配.
我也跑过这个页面似乎表明我可以用这个setStyle()方法来做,但文档似乎表明这个方法只适用于组件,而不是主画布.
我想我可以<mx:Canvas></mx:Canvas>为此专门包装所有内容,但这似乎很浪费 - 就像在HTML中的Div-itis一样.
在运行时更改主应用程序背景颜色的最佳方法是什么?
我需要一个奇怪的解决方案.我有一个要求,我在VBox中显示两个组件.但是在点击主容器时我需要最大化它并且需要在水平方向上显示组件.我只是想知道我是否可以使用actionscript或其他方式动态地将VBox更改为HBox和反之亦然.
在此先感谢,干杯,PK
例如,我在A类中有一个函数:
private function functionA(f:Function):void
{
var objB:B;
objB.f();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将类B的非静态公共成员函数作为参数传递给functionA?(当然,来自A类内部)我知道c ++中存在这样的语法,但不确定你是否可以在flex/as3中执行此操作
flex3 ×10
apache-flex ×8
actionscript ×3
flexbuilder ×2
ant ×1
components ×1
flash ×1
geometry ×1
graphics ×1
mxml ×1
mxmlc ×1
styles ×1