我的应用程序使用API从数据库中获取电影列表,当用户选择电影时,他会获得有关此电影的详细信息。现在我添加了一个后退按钮,让用户返回原始状态。 (从state_details到state_start)。然而,当我选择一部新电影时,我得到一个错误说:
ReferenceError:错误#1069:找不到属性moreInfo spark.skins.spark.ApplicationSkin并没有默认值。在 customComponents :: MovieRenderer / ___ MovieRenderer_Image1_click()[C:\用户\用户\的Adobe Flash Builder 4.6 \ Project_RMA \ SRC \ customComponents \ MovieRenderer.mxml:51]
我尝试了不同的方法让它工作但没有任何运气。应用程序能够在应用程序初始化时找到属性moreInfo。它首先加载当前流行的电影并点击一个以获得更多信息工作正常。但是当你退出那个对象时,它会给出一个错误,它再也找不到属性了。
以下是一些代码:
moreInfo:
public function moreInfo(movieData:Movie, fromMoreInfo:Boolean = false):void
{
currentState = "state_details";
lblTitle.text = movieData.title;
moviePoster.source = movieData.image;
}
单击图像时(在项目渲染器中),它会调用moreInfo
<s:Image width="170" height="170" x="-4" y="-4" source="{movieData.image}" click="parentDocument.moreInfo(movieData, fromMoreInfo);"></s:Image>
希望这是足够的代码来解决它。
编辑:
state_detail上有一个按钮,我将状态改回到它的事件处理程序中。
protected function button1_clickHandler(event:MouseEvent):void
{
currentState = 'state_first';
}
答案 0 :(得分:0)
我没有让你的itemrenderer实例直接在你的主容器上调用东西,而是重构从你的itemrenderer派遣事件并让应用程序对此进行操作:
<s:Image width="170" height="170" x="-4" y="-4" source="{movieData.image}" click="dispatchEvent(new DataEvent(MOVIE_DATA_SELECTED,false, false, movieData.id));"></s:Image>
在主应用程序文件中,将其添加到creationComplete
侦听器:
movieList.addEventListener(MyItemRenderer.MOVIE_DATA_SELECTED, onSelectMovie);
同时添加此功能:
public function onSelectMovie(e:DataEvent):void {
var movie:Movie = lookUpMovie(e.data); //e.data is the movie ID
moreInfo(movie, true);
}