Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Строка из массива не выводится в текстовое поле (http://www.flasher.ru/forum/showthread.php?t=152915)

FriOne 24.03.2011 21:36

Строка из массива не выводится в текстовое поле
 
Принимаю строку из ПХП, разбиваю ее.. целиком, не разбивая, текстовое поле выводит ее.
Если прибавить какую-нибудь строку или символ - тоже выводит, но без - нет..
Подскажите в чем может быть проблема.

Код AS3:

var datas:Array = e.target.params.slice();
for(var i=0; i < datas.length - 1; i++)
{
        var massive:Array = datas[i].split(";");
        var picture:Loader = new Loader();
        var url:String = "upload/img/3b7092e6a8a1d4338e35f76f97c70332.jpg";
        var urlReq:URLRequest = new URLRequest(url);
        var sphere:sphereDeyt = new sphereDeyt(picture, massive[0], massive[2] + "d");
        addChild(sphere);
}

e.target.params.slice(); - это первоначальная строка, var massive:Array = datas[i].split(";"); - здесь разбиваем, причем первый элемент в массиве выводит, остальные нет.

Zebestov 24.03.2011 22:20

Первоначальную строку покажи. Там точно присутствует хотя бы один символ ";"?
И еще. Ты точно хочешь просмотреть все элементы datas, кроме последнего? Или это опечатка:
Код AS3:

for(var i=0; i < datas.length -1; i++)


goodguy 24.03.2011 22:55

Я бы для начала без цикла проверил трейсом.

А сам цикл бы лучше использовал такой:
Код AS3:

for(var i:String in datas) {
 
}


FriOne 24.03.2011 23:57

Цитата:

Там точно присутствует хотя бы один символ ";"?
да, я его выводил в поле, первый элемент то выводится, а третий(я его пробывал), выводится при добавлении строки..
Цитата:

И еще. Ты точно хочешь просмотреть все элементы datas, кроме последнего?
Почему-то там на один больше нужного..
Цитата:

А сам цикл бы лучше использовал такой:
Код AS3:
for(var i:String in datas) {

}
_______
Спасиб, не знал такого.

in4core 25.03.2011 04:25

FriOne
Цитата:

Спасиб, не знал такого.
эээ ??? вы вроде давно на форуме, а это основы....

Zebestov 25.03.2011 04:45

Цитата:

Сообщение от FriOne (Сообщение 983611)
да, я его выводил в поле, первый элемент то выводится, а третий(я его пробывал), выводится при добавлении строки..

Строка засекречена спецслужбами? Покажи.

FriOne 25.03.2011 09:38

Цитата:

эээ ??? вы вроде давно на форуме, а это основы....
Ну да, просто долгое время не занимался флэшем, а этого не довелось использовать)

Цитата:

Строка засекречена спецслужбами? Покажи.
Вот часть строки:
answer=алмазное сырье;upload/img/3b7092e6a8a1d4338e35f76f97c70332.jpg;Минерал, кубическая аллотропная форма углерода.;
В скрипте я ее кодирую в UTF-8..

goodguy 25.03.2011 11:20

Код AS3:

var string:String = "answer=алмазное сырье;upload/img/3b7092e6a8a1d4338e35f76f97c70332.jpg;Минерал, кубическая аллотропная форма углерода.;";
var a:Array = string.split(";");
for (var i:String in a) {
        trace(a[i]);
}

Трейс тут выводит:
Цитата:

answer=алмазное сырье
upload/img/3b7092e6a8a1d4338e35f76f97c70332.jpg
Минерал, кубическая аллотропная форма углерода.

FriOne 25.03.2011 11:59

Цитата:

Трейс тут выводит:
Еще бы он не выводил)
Проблема не в том, что не разбивает строку,
а в том, что без добавления какой-то строчки, выводит ошибку,
если пишу любую строку, то все нормально, но из этих массивов не хочет принимать.

Gage 25.03.2011 12:05

Да ошибка просто в for.
Написано:
Код:

for(var i=0; i < datas.length - 1; i++)
а надо
Код:

for(var i=0; i < datas.length; i++)

goodguy 25.03.2011 14:15

Gage, нет такм никакой ошибки. Об этом уже говорилось.

FriOne, долго пытался понять смысл написанного, так и не понял :D

Но появился вопрос:

Код AS3:

for(var i=0; i < datas.length - 1; i++)
{
        var massive:Array = datas[i].split(";");
        var picture:Loader = new Loader();
        var url:String = "upload/img/3b7092e6a8a1d4338e35f76f97c70332.jpg"; // Вот это что? Откуда берется эта строка?
        var urlReq:URLRequest = new URLRequest(url);
        var sphere:sphereDeyt = new sphereDeyt(picture, massive[0], massive[2] + "d");
        addChild(sphere);
}

Что-то мне подсказывает, что этот цикл будет отправлять все время один и тот же запрос :D

i.o. 25.03.2011 14:26

FriOne, что вам мешает везде поставить трейсы и посмотреть, где начинаются недоразумения?

Добавлено через 2 минуты
Код AS3:

trace( 'e.target.params: ' +  e.target.params );
trace( 'e.target.params.length: ' +  e.target.params.length );
 
var datas:Array = e.target.params.slice();
 
trace( 'datas: ' +  datas );
trace( 'datas.length: ' +  datas.length );
 
for(var i=0; i < datas.length - 1; i++)
{
        trace( 'datas[' + i + ']: ' +  datas[i] );
 
        var massive:Array = datas[i].split(";");
 
        trace( 'massive: ' +  massive );
        trace( 'massive.length: ' +  massive.length );
 
        var picture:Loader = new Loader();
        var url:String = "upload/img/3b7092e6a8a1d4338e35f76f97c70332.jpg";
        var urlReq:URLRequest = new URLRequest(url);
        var sphere:sphereDeyt = new sphereDeyt(picture, massive[0], massive[2] + "d");
        addChild(sphere);
}


FriOne 25.03.2011 21:49

goodguy
Цитата:

Что-то мне подсказывает, что этот цикл будет отправлять все время один и тот же запрос
Так оно и есть) Вместо этой строки должен стоять massive[1], но без прибавления строки не пашет(
(то есть massive[1] + "что-то", увидит)

i.o.
Цитата:

FriOne, что вам мешает везде поставить трейсы и посмотреть, где начинаются недоразумения?
Не знаю как запустить флэш, чтоб пхп-скрипты работали при компиляции,
если перемещаю проект на сервер, он ошибки какие-то странные выдает,
поэтому компилю, а потом кладу swf на сервер.

Котяра 25.03.2011 21:57

трэйсы можно и на выложенном на сервере ролике смотреть, а ещё лучше какой-нибудь логгер прикрутить

FriOne 25.03.2011 22:00

Цитата:

трэйсы можно и на выложенном на сервере ролике смотреть
не знал, а как? логгером не хочется заниматься раз можно посмотреть и так)

goodguy 25.03.2011 22:07

C помощью отладчика во флеш плеере.
Цитата:

Так оно и есть) Вместо этой строки должен стоять massive[1], но без прибавления строки не пашет(
(то есть massive[1] + "что-то", увидит)
А если так: String(massive[1]); ?

FriOne 25.03.2011 22:08

ща попробую..

Добавлено через 1 минуту
Вот я ламер) да именно это мне и нужно было, спасибо.. не пойму, разве из пхп не строка идет(

Добавлено через 3 минуты
Осталось разобраться почему в конце еще один элемент,
причем выводит его undefined, видимо вайтспейс закрался.


Часовой пояс GMT +4, время: 14:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.