У меня есть объект item.movieimage
, содержащий некоторые тексты (item:Object
), которые извлекаются из моей базы данных. Текст меняется каждую неделю автоматически.Доступ к элементам в массиве - AS3
Если я trace(item.movieimage)
output
что-то вроде этого:
text1
text2
text3
text4
Слова изменения как код принимает их из моей базы данных. База данных меняет слова каждую неделю.
Теперь, я хочу, чтобы мой код AS3 отображал третий элемент item.movieimage
.
Я пытался сделать это:
var my_str:String = item.movieimage+",";
var ary:Array = my_str.split(",");
trace(ary[2]);
Но это не работает. Выход «undefined
».
Знаете ли вы, как я могу получить доступ к определенному элементу в массиве, который я создал? Или как я могу получить доступ к третьему элементу item.movieimage
?
Если я trace(ary);
, выход:
text1,
text2,
text3,
text4,
EDIT:
Для Infos: trace(typeof(item.movieimage))
и trace(typeof(ary))
являются:
typeof(item.movieimage)=string
typeof(ary)=object
EDIT 2:
Вот захват экрана item.movieimage
EDIT 3
Вот мой код, чтобы понять, как "item.movieimage" работает
//Variables for downloading content from my database to my AS3 code
var urlReqSearchAll: URLRequest = new URLRequest("http://www.myWebSite/searchMovie4.php");
var loader5:URLLoader = new URLLoader();
//downloading content
function searchAll():void {
if (contains(list)){
list.removeChildren();
}
urlReqSearchAll.method = URLRequestMethod.POST;
loader5.load(urlReqSearchAll);
loader5.addEventListener(Event.COMPLETE,complete);
var variables:URLVariables = new URLVariables();
}
//Content Downloaded.
function complete(e:Event):void {
addChild(list);
products = JSON.parse(loader5.data) as Array;
hourSaved.data.saved=loader5.data;
products.reverse();
for(var i:int = 0; i < products.length; i++){
createListItem(i, products[i]);
}
displayPage(0);
showList();
}
// If too much items --> creates multiple page
const itemsPerPage:uint = 7;
var currentPageIndex:int = 0;
function displayPage(pageIndex:int):void {
list.removeChildren();
currentPageIndex = pageIndex;
var firstItemIndex:int = pageIndex * itemsPerPage;
var j:int = 0;
var lastItemIndex: int = firstItemIndex + 7; // as lastItemIndex should be 10 more
if (lastItemIndex > products.length) // if lastindex is greater than products length
lastItemIndex = products.length;
for(var i:int = firstItemIndex; i< lastItemIndex; i++){
createListItem(j, products[i]); // j control the position and i points to particular element of array..
j++;
}
next.visible = lastItemIndex < products.length - 1;
if(currentPageIndex==0){
previous.visible=false;
}
}
// Display the information downloded from my database
function createListItem(index:int, item:Object):void {
var listItem:TextField = new TextField();
var myFormat:TextFormat = new TextFormat();
myFormat.size = item.title.length > 13 ? 22 : 26
listItem.multiline = true;
listItem.wordWrap = true;
myFormat.align = TextFormatAlign.CENTER;
myFormat.color = 0xA2947C;
myFormat.font = "Ebrima";
myFormat.bold = true;
listItem.defaultTextFormat = myFormat;
listItem.x = 135;
listItem.y = 123+ index * 84;
listItem.width = 200;
listItem.height = 80;
listItem.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
showDetails(item);
});
list.addChild(listItem);
str = item.title;
}
Мой PHP файл "SearchMovie4.php" заключается в следующем:
$products = array();
while ($row = mysql_fetch_array($sql_result)) {
$products[] = array(
"title" => $row["theTitle"],
"movieimage" => $row["movieimage"],
"movielength" => $row["movielength"],
"story" => $row["story"],
);
}
echo json_encode($products);
Итак, если я сделаю trace(item.movieimage)
в коде AS3, он отобразит все элементы в строке movieimage моей базы данных.
Если я сделаю trace(item.title)
в коде AS3, он отобразит все элементы в заголовке строки моей базы данных.
Что бы я хотел, это сделать в моем коде AS3, trace(item.movieimage[2])
, чтобы показать мне третий элемент в строке «movieimage».
Возможно, вы забыли приложить значение для свойства внутри кавычек! Измените его на: «один, три, шестнадцать, четырнадцать»; «или вы, возможно, намеревались иначе, и в этом случае, пожалуйста, уточните :) – someOne
Вы правы, мой оригинальный пост был не ясен. Я отредактировал свой пост и надеюсь, что я это разъяснил. – Steph
Показать следы для typeof (item.movieimage), typeof (ary), ary.length – Organis