Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在Flex中获取工具提示以正确刷新itemrenderer时出现问题_Apache Flex_Flex3_Tooltip_Itemrenderer - Fatal编程技术网

Apache flex 在Flex中获取工具提示以正确刷新itemrenderer时出现问题

Apache flex 在Flex中获取工具提示以正确刷新itemrenderer时出现问题,apache-flex,flex3,tooltip,itemrenderer,Apache Flex,Flex3,Tooltip,Itemrenderer,我有以下问题 我有一个ArrayCollection,它充当名为favoriteLinksList的tilelist的数据提供程序 我使用名为FavoriteItem的itemRenderer作为tilelist的itemRenderer。此FavoriteItem如下所示: <?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="280"

我有以下问题

我有一个ArrayCollection,它充当名为favoriteLinksList的tilelist的数据提供程序

我使用名为FavoriteItem的itemRenderer作为tilelist的itemRenderer。此FavoriteItem如下所示:

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
 width="280" height="163"
 horizontalAlign="center"
 paddingLeft="5" paddingRight="5" paddingTop="0" paddingBottom="0" xmlns:ns1="*">

 <mx:Canvas width="100%" height="100%">
  <mx:Image
   id="thumbnail"
   width="178" height="115"
   source="{data.thumbnail}"
   toolTip = "{data.tooltip}" x="46" y="10"/>

  <mx:Text
   id="title"
   text="{data.tileListTitle}" 
   width="254"
   toolTip="{data.tooltip}" x="10" y="133"/>
 </mx:Canvas>

</mx:VBox>
更新了工具提示后,但出现编译错误: 通过静态类型为mx.controls.listClasses:IListItemRenderer的引用访问可能未定义的属性标题

我还尝试对favoriteLinksList数组集合执行刷新,但结果不一。工具提示已正确更新,但tilelist中的第一个项目之一丢失!这似乎是一个Flex错误。数据提供程序在刷新前后具有相同数量的元素,如果单击tilelist中的第一个元素,则不会发生这种情况


非常感谢您的帮助。

我将着手做两件事

该对象实际上是可绑定的,并且正在发生更改并到达项目渲染器

可能的解决方案=>覆盖项呈现器中数据属性的setter,不要忘记调用super.data=value

-


站在这一行的断点处,当数据发生变化时,您应该可以到达断点。

我将着手做两件事

该对象实际上是可绑定的,并且正在发生更改并到达项目渲染器

可能的解决方案=>覆盖项呈现器中数据属性的setter,不要忘记调用super.data=value

-


这一行中有一个断点,当数据发生变化时,您应该可以到达断点。

找到了我的问题的解决方案

favoriteLinksList是可绑定的,并设置为tileList的数据提供程序。但是,对单个对象的更改没有传播到itemRenderer

我认为必须对favoriteLinksList数组集合本身进行更改

正如我在问题中提到的,我已经尝试使用favoriteLinksList.refresh,但是这使得tileList中的第一个元素消失了,尽管它似乎仍然在数组集合中。Flex中可能存在一个bug

无论如何,我发现解决这一问题的方法是执行以下操作:

favoriteLinksList.setItemAt(favoriteObject, favoriteLinksList.getItemIndex(favoriteObject));

本质上,我将索引X处的项设置为自身,因此实际上不执行任何操作,但这足以让itemRenderer刷新itemRenderer的数据。

找到了解决问题的方法

favoriteLinksList是可绑定的,并设置为tileList的数据提供程序。但是,对单个对象的更改没有传播到itemRenderer

我认为必须对favoriteLinksList数组集合本身进行更改

正如我在问题中提到的,我已经尝试使用favoriteLinksList.refresh,但是这使得tileList中的第一个元素消失了,尽管它似乎仍然在数组集合中。Flex中可能存在一个bug

无论如何,我发现解决这一问题的方法是执行以下操作:

favoriteLinksList.setItemAt(favoriteObject, favoriteLinksList.getItemIndex(favoriteObject));

本质上,我将索引X处的项设置为自身,因此实际上不执行任何操作,但这足以让itemRenderer刷新itemRenderer的数据。

由于某些原因,我粘贴的代码格式不正确。下面是代码链接:我无法访问title.toolTip=data.toolTip的null对象引用的属性。toolTip考虑将数据更改为值,使其成为title.toolTip=value.toolTip,但仍然没有乐趣:favoriteLinksList是[Bindable],并且在应用程序启动时对它所做的更改在tilelist中正确反映。问题是对它的后续更改。意识到尽管favoriteLinksList是可绑定的,并设置为tileList的数据提供程序,但对单个对象的更改一定没有传播到tileList。找到了一个解决方案并将其包含在下面。Tzurel我没有解释为什么您的代码不会出现,但它似乎与列表有关。在列表和代码段之间添加“-”可以解决此问题。由于某些原因,我粘贴的代码格式设置不正确。下面是代码链接:我无法访问title.toolTip=data.toolTip的null对象引用的属性。toolTip考虑将数据更改为值,使其成为title.toolTip=value.toolTip,但仍然没有乐趣:favoriteLinksList是[Bindable],并且在应用程序启动时对它所做的更改在tilelist中正确反映。问题是对它的后续更改。意识到尽管favoriteLinksList是可绑定的,并设置为tileList的数据提供程序,但对单个对象的更改一定没有传播到tileList。找到了一个解决方案并将其包含在下面。Tzurel我没有解释为什么您的代码不会出现,但它似乎与列表有关。在列表和代码段apears之间添加“-”,以解决 苏。
favoriteLinksList.setItemAt(favoriteObject, favoriteLinksList.getItemIndex(favoriteObject));