作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 flex sdk 4.5(但它与 4.1 相同)并且我有以下问题:
我将 ItemRenderer 的当前状态绑定(bind)到外部对象。该对象通过 Robotlegs 注入(inject)器注入(inject)到 mxml View 中。
该 View 有 4 个状态,只要我不翻转项目本身,一切正常。在这种情况下,没有任何明显的解释,即使绑定(bind)的 currentState 变量的值没有改变,currentState 也会切换到 defaultstate。为了解决这个问题(并证明绑定(bind)的状态值没有改变),我监听状态切换到默认值时创建的按钮的添加事件,并强制 currentState 再次切换到当前值。
它有效,但显然很糟糕,有人可以告诉我发生了什么吗?谢谢!
请看下面的代码:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:modelviews="it.addme.MVVM.modelviews.*"
width="150" height="100" autoDrawBackground="true"
currentState="{modelView.currentState}"
>
<fx:Script>
<![CDATA[
import it.addme.MVVM.modelviews.AddMeButtonPresenter;
[Inject]
[Bindable]
public var modelView:AddMeButtonPresenter;
override public function set data(value:Object):void
{
panel.title = value.appName;
}
protected function button1_addedHandler(event:Event):void
{//I need this to solve the roll-over problem
currentState = modelView.currentState;
}
]]>
</fx:Script>
<s:states>
<s:State name="default" />
<s:State name="USER_UNKNOWN" />
<s:State name="USER_EXISTS" />
<s:State name="USER_DOESNT_EXIST" />
</s:states>
<s:Panel left="0" top="0" width="150" height="100" id="panel">
<s:Button includeIn="USER_UNKNOWN" label="Checking..." enabled="true" horizontalCenter="0"
verticalCenter="0"/>
<s:Button includeIn="USER_EXISTS" label="Unsubscribe" click="modelView.unsubscribe()"
enabled="true" horizontalCenter="0" verticalCenter="0"/>
<s:Button includeIn="USER_DOESNT_EXIST" label="Subscribe" click="modelView.subscribe()"
enabled="true" horizontalCenter="0" verticalCenter="0"/>
<s:Button includeIn="default" label="..." added="button1_addedHandler(event)"
horizontalCenter="0" includeInLayout="false" verticalCenter="0"/>
</s:Panel>
</s:ItemRenderer>
最佳答案
看看protected function getCurrentRendererState():String
的 spark.components.supportClasses.ItemRenderer
( documentation ) 并正确覆盖它。
关于flex4 - Rolling Over a spark ItemRenderer 将 View 状态切换为默认值!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844644/
我是一名优秀的程序员,十分优秀!