我有一个自定义组件,它有一个背景图像。但是当你在一个列表中通过一个ItemRenderer生成这个组件时,背景图像不见了。
我做错了什么?
下面是一个图像。第一个元素不是在列表中生成的,并且有一个背景图像。其他三个元素是List的一部分,并且没有背景图像。
下面是列表的MXML代码
<mx:VBox>
<solutionItems:displaySolutionItem /> <!-- This element shows the background image -->
<mx:List selectable="false"
useRollOver="false"
id="listControllers"
backgroundAlpha="1"
dataProvider="{controllers}" >
<mx:itemRenderer>
<fx:Component>
<solutionItems:displaySolutionItem /> <!-- These elements have nog background image -->
</fx:Component>
</mx:itemRenderer>
</mx:List>
</mx:VBox>
这是<solutionItems:displaySolutionItem />
的代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas
xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundImage="{itemBackGround}"
backgroundSize="100%">
<mx:Script>
<![CDATA[
[Bindable]
[Embed(source="assets/Components/ContainerBackgrounds/BoxBg.png", scaleGridLeft="5", scaleGridRight="50", scaleGridTop="5", scaleGridBottom="50")]
private var itemBackGround:Class;
]]>
</mx:Script>
<mx:VBox
paddingBottom="10"
paddingLeft="10"
paddingRight="10"
paddingTop="10">
<mx:CheckBox id="chbControllerItem" label="NSL-4601" styleName="titleRed" />
<mx:HBox>
<mx:Image width="67" height="50" id="loader1" source="@Embed(source='assets/Components/ContainerBackgrounds/BoxBg.png')"/>
<mx:HBox>
<mx:VBox>
<mx:Label text="Cube size" styleName="formLabel" height="12" />
<mx:Label text="Cube config" styleName="formLabel" height="12" />
<mx:Label text="Display res" styleName="formLabel" height="12" />
<mx:Label text="DPI" styleName="formLabel" height="12" />
<mx:Label text="Price" styleName="formLabel" height="12" />
</mx:VBox>
<mx:Box>
<mx:Label text="50''" height="12" />
<mx:Text text="2x3 (1224mm x 3264mm)" height="12" />
<mx:Label text="WXGA (1360x768)" height="12" />
<mx:Label text="72 dpi" height="12" />
<mx:Label text="€ 101.000,00" height="12" />
</mx:Box>
</mx:HBox>
</mx:HBox>
</mx:VBox>
</mx:Canvas>
可能是一些小东西,但我找不到。
3条答案
按热度按时间vwkv1x7d1#
以下方法可以解决此问题:
1.从itemRenderer的Canvas元素中移除backgroundImage="{itemBackGround}”
1.在itemRenderer类中的VBox之前添加以下内容。我测试了它,它工作正常:
如果您找到更好的方法,请更新您的问题,让我们知道,
布莱恩
mepcadol2#
您是否尝试过在List或itemRenderer中设置alpha或backgroundAlpha属性?
我猜List要么是在背景上绘制了一些东西,要么是阻止了背景的绘制。不过,您必须逐步执行代码才能确定这一点。
t98cgbkg3#
我没有尝试过,但看起来 * 组件没有为每个渲染器创建多个图像示例/副本 *
可能解决方案是,* 加载图像 * 在任何Singleton/Constant类中,如在Model中,NOT在component/list中,并使用 component/list 中 *Model属性引用 *,即所有渲染器一个副本
希望这有用