Я пытаюсь разработать мобильное приложение flex.Flex Mobile ArrayCollection Error
В моем приложении у меня есть два вида.
Я пытаюсь передать ArrayCollection как данные от одного вида к другой точке зрения, но при попытке получить доступ ArrayCollection на второй взгляд, я получаю сообщение об ошибке ..
Вот код из firstView.mxml:
dirSteps является ArrayCollection, что я пытаюсь перейти к следующему представлению ...
for (var r:Number = 0 ; r < directions.numRoutes; r++) {
var route:Route = directions.getRoute(r);
if (r >= 0 || r < (numRoutes - 1)) {
var midMarker:Marker = new Marker(route.endLatLng);
map.addOverlay(midMarker);
}
var numSteps:uint = route.numSteps;
for (var s:Number = 0 ; s < numSteps ; s++) {
var step:Step = route.getStep(s);
dirSteps.addItem({Step: (s+1), Description: step.descriptionHtml, Distance: step.distanceHtml, LatLng: step.latLng});
}
}
dirSteps.refresh();
}
..... some more code ...
navigator.pushView(DetailDirection,dirSteps);
код из DetailDirection.mxml:
[Bindable]
private var directionList:ArrayCollection;
private function init():void {
directionList = new ArrayCollection(ArrayUtil.toArray(data));
// here, data should be my arraycollection, but throws above error on
// trying to access property (i.e Step, Distance etc ..) of ArrayCollection ...
trace(data.Distance);
}
Error: Unknown Property: 'Distance'. at mx.collections::ListCollectionView/http://www.adobe.com/2006/actionscript/flash/proxy::getProperty()[E:\dev\4.y\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:870] at views::DetailDirection/init()[C:\Documents and Settings\ARSENAL\Adobe Flash Builder 4.6\CityExplorer_v2.0\src\views\DetailDirection.mxml:21] at views::DetailDirection/___DetailDirection_View1_creationComplete()[C:\Documents and Settings\ARSENAL\Adobe Flash Builder 4.6\CityExplorer_v2.0\src\views\DetailDirection.mxml:6] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152] at mx.core::UIComponent/set initialized()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:1818] at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:842] at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]
Что вызывает эту ошибку? Что должно быть сделано ?
Все, что мне не хватает здесь?
Благодаря
Что такое 'MyObjectType' Вот ? Какой тип объекта вы говорите? – tomjerry
^спасибо. Твой сон работал. Но, когда я пытаюсь сохранить значение 'data' в моем втором представлении, вот так: ' private var arr: ArrayCollection = new ArrayCollection (ArrayUtil.toArray (data)) ;, а затем попытаться получить доступ как .. '((arr as ArrayCollection) .getItemAt (0) как MyObjectType) .distance' .. он по-прежнему бросает мне ту же ошибку, что и« свойство расстояния неизвестно »... – tomjerry
@tomjerry« MyObjectType »будет типом объекта объекты в вашем dataProvider. Когда вы инициализируете ArrayCollection таким образом, он устанавливается один раз; возможно, до того, как будет установлено свойство данных.Вам нужно будет пройти код при попытке получить доступ к значениям, чтобы узнать, что не так. Является ли массив ArrayCollection действительным? Доступен ли элемент, который вы пытаетесь получить доступ, в ArrayCollection? Правильно ли он отображается? И, наконец, имеет ли это свойство расстояния? – JeffryHouser