Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   не могу передать переменную в TextField (http://www.flasher.ru/forum/showthread.php?t=121141)

sector_222 08.02.2009 22:08

не могу передать переменную в 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

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

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

Fatality 08.02.2009 23:33

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

sector_222 09.02.2009 00:28

странно - но не помогло хм...я кстати так пробывал - видно в самой функции где обработка данных - косяк
вот она собственно
Код 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'); 
}


Fatality 09.02.2009 00:47

Хм... а если попробовать так:
kusimus_array = my_st1.split("$$"); заменить на kusimus_array = my_st1.split("$$").slice();
Да, а вне функции Gorizontal массив виден ?

sector_222 09.02.2009 01:01

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

Fatality 09.02.2009 01:08

Странно, попробуйте создавать глобальный массив вне функций, а в функции задавать ему значение.

sector_222 09.02.2009 01:10

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

Fatality 09.02.2009 01:29

Нет, аттач тут безполезен, просто создайте через цикл необходимое количество полей:
Код 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);
}


sector_222 09.02.2009 01:34

чё-то не идёт .......- что-то переделать придётся - а за цикл спасибо - обязательно применю =)

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

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

Fatality 09.02.2009 13:09

Выгружай с помощью, unloadMovie()


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

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