2011-01-20 28 views
0

我无法设置的另一个状态控件的属性。设置不同状态的控件的属性? - Flex的4

最新消息_Display正在根据最新消息状态。我想设置即使currentState设置为介绍Latest_News_DisplayX财产。但是,当我尝试使用Latest_News.Latest_News_Display.x = 10时,它返回一个错误,说1120:访问未定义的属性Latest_News。那么我该如何去做呢?

+0

也许这只是你的文章中的一个错误,但如果`Latest_News_Display`是你的对象,'x`是你想设置的属性,`Latest_News`是你想要设置的属性,那么语法应该是`Latest_News_Display .x.Latest_News = 10`,即。 `object.property.state = value`。你的帖子目前有`state.object.property = value`,除非你扩展了State类,否则这对我没有任何意义。 – merv 2011-01-20 19:16:50

+0

嗯,我刚刚习惯了这种模式,从我以前使用的IDE的MainObject.SubObject.Property ... – 2011-01-22 07:16:36

回答

1

在您尝试设置组件时,不能保证在另一个状态中创建了组件。很难说没有看到你的代码,但我猜这是基于你的错误的问题。

你基本上必须创建你自己的延迟值设置方法。所以,当您尝试设置它做这样的事情:

if(Latest_News_Display){ 
Latest_News_Display.x = 10 
} else { 
cachedLatest_News_DisplayX = 10 
} 

后来听currentStateChange event,并设置新值,则:

protected function onCurrentStateChange(event:StateChangeEvent):void{  
Latest_News_Display.x = cachedLatest_News_DisplayX 
} 

我还会补充说,基于粗体在你的问题中的项目,看起来你试图通过名字Latest_News访问一个州。如果您创建指向特定状态的局部变量,则可以执行此操作。但是,如果你使用的是MXML,那么你可能没有。即便如此,一个状态基本上只是一组覆盖范围,你无法直接访问该状态下的组件。