Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.02.2009, 22:08
sector_222 вне форума Посмотреть профиль Отправить личное сообщение для sector_222 Найти все сообщения от sector_222
  № 1  
Ответить с цитированием
sector_222
 
Аватар для sector_222

Регистрация: Jul 2008
Сообщений: 72
Question не могу передать переменную в TextField

добрый день прошу помощи не могу вывести данные с массива в денамически созданное тест поле


массив kusimus_array[]; заполняется в руте по php запросу - без проблем выводиться в текстовое поле созданное инструментом во FLash

создал клип mcKusimus и уже в нём программно создаю поле
Код AS1/AS2:
 
var yy = 50;
 
var myformat:TextFormat = new TextFormat();
myformat.size = 20;/*размер шрифта*/
myformat.color = 0xFF0000;
var n:String = kusi_array[0];
this.createTextField("kusimus", this.getNextHighestDepth(), 30, yy, 600, 100);/* x, y, W,H  */
	kusimus.border = true;
	kusimus.multiline = true;
	kusimus.autoSize = true;
	kusimus.wordWrap = true;  // перенос слов разрешен
	kusimus.type = "dynamic"; //тип текста dynamic input
	kusimus.maxChars = 255; //можно ввести только 16 символов
 
	kusimus.text = kusimus_array[0];
	kusimus.setTextFormat(myformat);
результат undefined

пробую просто создавать в начале клипа переменную в руте - и вывести - всё норм

подскажите где накосячил?

Старый 08.02.2009, 23:33
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 2  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Все дело в области видимости переменных. Я так понимаю массив kusimus_array находится в _root, а вы пытаетесь обратится к одному из его элементов из клипа mcKusimus. Варианты решения проблемы:
1. Сделать массив глобальным - var kusimus_array заменить на _global.kusimus_array
2. Обращаться к элементу через _root - kusimus.text = _root.kusimus_array[0];
Первый вариант предпочтительнее.

Старый 09.02.2009, 00:28
sector_222 вне форума Посмотреть профиль Отправить личное сообщение для sector_222 Найти все сообщения от sector_222
  № 3  
Ответить с цитированием
sector_222
 
Аватар для sector_222

Регистрация: Jul 2008
Сообщений: 72
странно - но не помогло хм...я кстати так пробывал - видно в самой функции где обработка данных - косяк
вот она собственно
Код AS1/AS2:
function Gorizontal(idkey:String,tema:String)
{
 
			Kuest_Button._visible=false;
			/*mcKusimusi._visible=false;*/
			/*для передачи в функцию Window*/
 
			formData2 = new LoadVars();
	//при загрузке флешки в пустое поле выводить сообщение
	formData2.onLoad = function(success:Boolean)
	{    
		if (success)
		{  
 
			//стартовая позиция картинок по X
			var startXg:Number = 0;
			//стартовая позиция картинок по Y
			var startYg:Number = 0;
			//дистанция между картинками
			var imageShift2:Number = 1;
			//текущая координата картинки
			var currImageXg:Number = 0;
			//создаем контейнер в ScrollPane'e
			gorizScroller.contentPath = "ScrollContentGorizont";
			/*вносим список id materiala*/
			var my_str3:Array = formData2.id_material;
			var id_material_array = new Array();
			id_material_array = my_str3.split("$$");
			/*вносим заголовки тем*/
			var my_str4:Array = formData2.heading_material;
			var heading_material_array = new Array();
			heading_material_array = my_str4.split("$$");
/**********************************вопросы к теме*************************************************/
			/*вносим id вопросов*/
			var my_st:Array = formData2.id_kus;
			var id_kus_array = new Array();
			id_kus_array = my_st.split("$$");
			/* вносим сами вопросы*/
			var my_st1:Array = formData2.kusimus;
			_global.kusimus_array = new Array();
			kusimus_array = my_st1.split("$$");
			/*выводим кнопку если есть вопросы к теме*/
			mcKusimusi.ggg = "sdfdsfds";
			/*mcKusimusi.kusi_array = kusimus_array;*/
			if(kusimus_array[0]!=""){Kuest_Button._visible=true;}
				/*hhh.text = kusimus_array[0];*/
 
 
/*************************************************************************************************/
 
 
			for (var i = 0; i<heading_material_array.length-1; i++)
			{
				//добовляем картинку из библиотеки
				gorizScroller.spContentHolder.attachMovie("ttitle","ttitle"+i,i);
				//оптимизируем скрипт создавая переменную image передавая ей ссылку на нашу картинку
				var ttitle:MovieClip = gorizScroller.spContentHolder["ttitle"+i];
				//выставляем координаты токо что созданной картинки
				ttitle.vertScroller.spContentHolder.titleText.text = heading_material_array[i];
				ttitle.titleText.text = heading_material_array[i];
				ttitle._x = startXg;
				ttitle._y = startYg;
				//выщитываем новую координату для следующей картинки
				startXg += ttitle._width+imageShift2;
				/*для передачи в функцию Window*/
				ttitle.IdKey2_array = id_material_array[i];
				ttitle.head_array = heading_material_array[i];
				ttitle.temaForWindow = tema;
	        if (i == 0)/*если первый запрос */
                {
					MainWindow(tema,heading_material_array[i],id_material_array[i]); 
				}
 
			}
 
		}else{
				ttitle.titleText.text = "Error loading/parsing LoadVars.";
		}
   };
  /*ОТПРАВЛЯЕМ В PHP  ID темы */
 formData2.keys = idkey;
 
//отсылаешь в файл .php 
formData2.sendAndLoad('phpgorizontal.php', formData2, 'POST');  
}

Старый 09.02.2009, 00:47
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 4  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Хм... а если попробовать так:
kusimus_array = my_st1.split("$$"); заменить на kusimus_array = my_st1.split("$$").slice();
Да, а вне функции Gorizontal массив виден ?

Старый 09.02.2009, 01:01
sector_222 вне форума Посмотреть профиль Отправить личное сообщение для sector_222 Найти все сообщения от sector_222
  № 5  
Ответить с цитированием
sector_222
 
Аватар для sector_222

Регистрация: Jul 2008
Сообщений: 72
виден: взять даже функцию MainWindow - в ней поменял вместо темы вставил массив kusimus_array- всё показывает
я думаю тут что-то с этим мувиклипом mcKusimus- это он почемуто- не видит этот массив именно с этой функции - поскольку с других мест перменные этот клип видит

Старый 09.02.2009, 01:08
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 6  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Странно, попробуйте создавать глобальный массив вне функций, а в функции задавать ему значение.

Старый 09.02.2009, 01:10
sector_222 вне форума Посмотреть профиль Отправить личное сообщение для sector_222 Найти все сообщения от sector_222
  № 7  
Ответить с цитированием
sector_222
 
Аватар для sector_222

Регистрация: Jul 2008
Сообщений: 72
ща прпробую - у меня такой вопрос: как вывести несколько таких текстовых полей в один мувик одним циклом - из массива значит ? аттачем?

Старый 09.02.2009, 01:29
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 8  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Нет, аттач тут безполезен, просто создайте через цикл необходимое количество полей:
Код AS1/AS2:
for(i=0; i < kusimus_array.length; i++)
{
var kusimus = this.createTextField("kusimus"+i, this.getNextHighestDepth(), 30, yy+100*i, 600, 100);/* x, y, W,H  */
	kusimus.border = true;
	kusimus.multiline = true;
	kusimus.autoSize = true;
	kusimus.wordWrap = true;  // перенос слов разрешен
	kusimus.type = "dynamic"; //тип текста dynamic input
	kusimus.maxChars = 255; //можно ввести только 16 символов
 
	kusimus.text = kusimus_array[i];
	kusimus.setTextFormat(myformat);
}

Старый 09.02.2009, 01:34
sector_222 вне форума Посмотреть профиль Отправить личное сообщение для sector_222 Найти все сообщения от sector_222
  № 9  
Ответить с цитированием
sector_222
 
Аватар для sector_222

Регистрация: Jul 2008
Сообщений: 72
чё-то не идёт .......- что-то переделать придётся - а за цикл спасибо - обязательно применю =)

Добавлено через 10 часов 31 минуту
тупо код перенёс из мувика в рут - всё заработало

теперь появилас новая проблема - как отчистить мувик от этих строк??? - поскольку при повторном вызове функции всё печатаеться поверх напечатанного - та же проблема и с вывродом изображения - не знаю как выгружать его из мувика -( загружал с помощью loadMovie)


Последний раз редактировалось sector_222; 09.02.2009 в 12:30.
Старый 09.02.2009, 13:09
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 10  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Выгружай с помощью, unloadMovie()

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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