原谅我,我是Flash Builder 4和Actionscript 3的新手(实际上,除了一些非常简单的东西之外,整个编程都是如此)。我观看/阅读了一堆教程,并开始了一个项目,但现在似乎已经碰壁了。答案很可能很简单,但似乎暗指我。
我如何(或者我应采取什么方法)来控制我动态创建的视觉元素,例如BorderContainer?
原样,我有一个包含BorderContainer和DataGrid的Application。在运行时,基于包含X& X的数据创建3个新的BorderContainer(可拖动且可调整大小)。 Y坐标,高度和宽度值,然后添加到预先存在的BorderContainer。我将如何获取这些子BorderContainers的属性以显示并在DataGrid中保持最新(例如移动/调整大小时)?
我将来的意图是拥有一个自定义组件,在一个单独的区域显示这些项目的摘要(想想photoshop“层”控制,但更简单),但希望更好地了解正在发生的事情首先。
任何输入,文档,示例等都是值得赞赏的。我再次为可能是一个非常简单的解决方案道歉,或者如果我的任何语言不清楚,我是新来的^ _ ^;
答案 0 :(得分:1)
我将创建一个BorderContainers的ArrayCollection,并设置各种属性(同时确保在父BorderContainer上调用addElement)。确保将ArrayCollection声明为Bindable,然后将其设置为DataGrid的dataProvider。然后根据要显示的任何属性(高度,宽度等)指定DataGrid的列。现在,只要BorderContainers的属性发生更改,DataGrid就会自动更新。
答案 1 :(得分:0)
假设一个纯粹的AS3项目,最好的方法是构建一个对象的字典。
我们还假设您已经为组件创建了标识符,或者可以在运行时轻松创建它们。
var containers:Dictionary = new Dictionary();
private function _init():void
{
//some loop to create objects
containers[newObject.name] = newObject;
}
稍后您可以通过从容器字典中获取散列索引来快速访问它。
现在,假设有一个Flex项目,我们可以采取更多方法:
就个人而言,我仍然更喜欢字典方法......
至于保持最新状态,您可以查看Binding(通常是仅限Flex的解决方案)或更适当地调查调度的事件:
在处理程序中,只需更新您的UI!
HTH,否则发布更多信息,我们会看到我们可以弄清楚的。