这是我的问题 - 我有一些像这样的代码:
<mx:Canvas width="300" height="300">
<mx:Button x="800" />
</mx:Canvas>
Run Code Online (Sandbox Code Playgroud)
所以问题是画布中的Button有一个超过Canvas宽度的x属性方式 - 因为它是Canvas的一个子节点,Canvas屏蔽它并为我创建一些滚动条以滚动到按钮.
我想要的是在没有滚动条的情况下显示按钮 - 画布左侧800像素,同时仍然将按钮保留为画布的子画面.我怎么做?
我在组合框中使用自定义项呈示器来显示自定义绘图而不是默认文本标签.
这适用于下拉列表,但显示的项目(当列表关闭时)仍然是我的对象的文本表示.
有没有办法让显示的项目与下拉列表中的项目呈现方式相同?
我有一个可编辑的DataGrid,类似于:
<mx:Datagrid editable="true" dataProvider="{arrayListPreferences}" id="preferencesGrid">
<mx:columns>
<mx:DataGridColumn header="col1" dataField="preference" editable="false"/>
<mx:DataGridColumn header="col2" dataField="value" editable="true"/>
</mx:columns>
</mx:Datagrid>
Run Code Online (Sandbox Code Playgroud)
当用户编辑数据时,他点击了一个按钮,并调用一个将数据保存到数据库的功能,在此功能中,我必须在发送数据之前验证数据.我想使用简单的验证器(NumberValidator,StringValidator等),但我不知道如何将此验证器的源设置为第二列中的指定行.
我刚开始使用flex并且正在使用SDK(不是Flex Builder).我想知道从ant构建脚本编译mxml文件的最佳方法是什么.
我有一个MXML文件,它引用了所有事件处理程序的外部脚本文件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script source="LoginExample.as" />
<mx:Button id="btnGoodLogin" click="btnGoodLogin_onClick()" label="Good Login" enabled="true" y="28"/>
<mx:Button id="btnBadLogin" click="btnBadLogin_onClick()" label="Bad Login" enabled="true" y="28" x="112"/>
<mx:Button id="btnLogout" click="btnLogout_onClick()" label="Logout" enabled="true" y="28" x="219"/>
<mx:Button id="btnCheck" click="btnCheck_onClick()" label="Check" enabled="true" y="28" x="325"/>
<mx:Text id="txtResult" y="58" width="263"/>
</mx:Application>
Run Code Online (Sandbox Code Playgroud)
外部文件定义处理程序:
// LoginExample.as
import flash.events.*;
import flash.net.*;
function btnGoodLogin_onClick():void
{
// ...
}
function btnBadLogin_onClick():void
{
// ...
}
// etc. for other handlers
Run Code Online (Sandbox Code Playgroud)
这些处理程序中的每一个以及脚本中定义的每个其他函数都会产生编译器的警告消息:
1084:函数'btnBadLogin_onClick'将限定为默认命名空间:LoginExample:internal.它不会在此包装外面看到.LoginExample/src LoginExample.as第27行1225162212118 189
什么是摆脱这些警告的最佳方法?
我想根据具有一个或多个参数的函数的返回值在按钮上设置enabled属性.我怎样才能做到这一点?
private function isUserAllowed (userName:Boolean):Boolean {
if (userName == 'Tom')
return true;
if (userName == 'Bill')
return false;
}
<mx:Button label="Create PO" id="createPOButton"
enabled="<I want to call isUserAllowed ('Bill') or isUserAllowed ('Tom') here>"
click="createPOButton_Click()" />
Run Code Online (Sandbox Code Playgroud) 为什么Flex框架的mxml语言不支持组件的构造函数或接受组件的构造函数参数?据我所知,如果它采用构造函数参数,则无法在mxml中声明ActionScript对象.我很好奇这个原因.它是Adobe的设计选择还是与声明性语言的工作方式有关?例如,为什么不允许:
<myNameSpace:MyComponent constructor="{argArray}"/>
Run Code Online (Sandbox Code Playgroud) 我有一个TextInput字段,应该限制为大写字母,小写字母,数字和下划线.这是我试图用来限制字符的代码:
restrict="\\A-Z\\a-z\\0-9\\ \\_\\-"
Run Code Online (Sandbox Code Playgroud)
我正在为这个Textinput组件使用MXML.
不幸的是,这不会限制\字符,这是我想要限制的最后一个字符.
如何将反斜杠添加到受限字符列表中?
谢谢
斯蒂芬
我正在尝试构建一个简单的组件,将spark.components.Group扩展为具有背景颜色,更具体地说是一个spark.primitives.Rect组件,它被拉伸以填充背景.
这就是我到目前为止所提出的:
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
<fx:Metadata>
[DefaultProperty(name="content")]
</fx:Metadata>
<s:Rect id="background" width="100%" height="100%">
<s:fill>
<s:SolidColor color="#990000"/>
</s:fill>
</s:Rect>
<s:Group id="container"/>
<s:filters>
<!-- For good measure ;) -->
<s:DropShadowFilter color="#000000" strength="0.4" blurX="5" blurY="5" distance="2" angle="90"/>
</s:filters>
<fx:Script>
<![CDATA[
public function set content(value:Array):void {
this.container.mxmlContent = value;
}
]]>
</fx:Script>
</s:Group>
Run Code Online (Sandbox Code Playgroud)
好的,所以这里的逻辑基本上是有道理的,对吧?在MXML中声明的所有子项都转到名为"container"的组中.这工作得很好.但是,当我运行下面的示例时,布局完全是fubar.
<s:VGroup>
<!-- This is the component described above -->
<components:MessageContainer id="component" width="100" height="100"/>
<mx:Slider/>
<mx:Slider/>
<mx:ColorPicker/>
</s:VGroup>
Run Code Online (Sandbox Code Playgroud)
这就是它的样子:
flex fubar http://i34.tinypic.com/s4p0tz.jpg
这里有什么我想念的吗?也许我需要覆盖一种方法?
解:
如果你有同样的问题,addElement()而不是addChild()就是这样做的
我正试图从mxml转移到actionsctipt.我有一个<s:Rect>我已创建并设置其属性,但无法添加它.
var aRect:Rect = new Rect();
//set properties like aRect.x, aRect.y, aRect.width, aRect.height
//tried adding it various ways
addChild(aRect);
Application.addChild(aRect);
Application.application.addChild(aRect);
stage.addChild(aRect);
Run Code Online (Sandbox Code Playgroud)
但我一直得到错误 1067:类型spark.primitives的值的隐式强制:Rect到不相关的类型flash.display:DisplayObject
最初是在mxml中,它内部<s:Application>没有嵌套在任何内容中
<s:Application>
<s:Rect id="aRect" x="10" y="10" width="15%" height="15%">
//then fill code here, removed for readability
</s:Rect>
</s:Application>
Run Code Online (Sandbox Code Playgroud)
什么是交易,我认为actionscript会比mxml更好.
apache-flex ×10
mxml ×10
flex4 ×2
actionscript ×1
adobe ×1
ant ×1
character ×1
combobox ×1
datagrid ×1
flash ×1
gumbo ×1
itemrenderer ×1
restrict ×1
textinput ×1