![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
Помогите, пожалуйста, разобраться.
Уже которые сутки бьюсь об лёд, запутался и ничего не соображаю. Есть некая функция загрузки xml, в которой одновременно создаются пустые мувиклипы вида kart[1..numkart]_mc ("kart"+numkart+"_mc", например kart1_mc, kart2_mc, ... ). В них создаются мувики image_load, в которые подгружаются картинки, пути к которым взяты из xml-списка. Далее, после подгрузки картинки, в kart[1..]_mc.image_load должно создаваться текстовое поле, в который из этого-же xml-файла подгружается описание картинки. Загрузка xml проходит успешно - доступы к данным, чтение переменных, загрузка картинок и присвоение переменным значений "описания картинок" - тоже, трейс выводит. Не создаются текстовые поля. Я ОДНОЗНАЧНО запутался с обращением к объектам, ткните, пожалуйста, носом - где и как мне создать текстовое поле с подгрузкой в него значения txt_url1. Просьба на всякие непонятные переменные внимания не обращать, а смотреть только ход создания мувиклипов и текстового поля. Сил моих больше нет ( Если Вы снизойдёте, и Вам всё-таки понадобится исходник - дайте, пожалуйста, знать, я выложу. numkart_tlimit = 1; xmlgallery = new XML(); // создаём хмлгаллери xmlgallery.ignoreWhite = true; // ************** Начало xmlgallery.onLoad xmlgallery.onLoad = function (loaded) { if (loaded) //если загружена - начинаем циклы загрузки картинок { for (var y_i:Number = 1; y_i <= 15; y_i++) { //15 рядов for (var x_i:Number = 1; x_i <= 15; x_i++) { //по 15 картинок var numkart:Number = x_i + next_ryad; //Для индексации клипов trace(""); var kart:MovieClip = createEmptyMovieClip("kart"+numkart+"_mc", numkart); kart._x = kart_mc_coord_x+500*shahm; kart._y = kart_mc_coord_y-(kart._height-1000)/2; var image:MovieClip = kart.createEmptyMovieClip("image_load", getNextHighestDepth()); if (numkart_tlimit > 68) {numkart_tlimit = 1;}; var imya:String = xmlgallery.childNodes[numkart_tlimit].childNodes[0].firstChild.nodeValue; var kartina_mc_ldr:MovieClipLoader = new MovieClipLoader(); kartina_mc_ldr.addListener(vaha.kartlistener); kartina_mc_ldr.loadClip(imya, kart.image_load); var img_desc:TextField = kart.image.createTextField("img_desc"+numkart, numkart, 600, 600, 200, 100); img_desc.border = true; img_desc.html = true; img_desc.multiline = false; img_desc.wordWrap = false; var txt_url1:String = xmlgallery.childNodes[numkart_tlimit].childNodes[1].firstChild.nodeValue; img_desc.htmlText = txt_url1; img_desc.text = txt_url1; numkart_tlimit ++; } // конец цикла x_i } //конец цикла y_i } else // *************** ELSE загрузки хмл - "если не загружен" { trace ("xml\'field"); } xmlgallery.load("image_list.xml"); |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Мувик image в kart вы не создавали (в приведенном коде, во всяком случае). Поэтому kart.image undefined.
Плюс getNextHighestDepth() нужно у kart вызывать. |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
гм, сейчас разберусь
Спасибо! ) Добавлено через 20 минут не разобрался ( udaff, не могли-бы Вы чуть-чуть поподробней объяснить? эксперименты варьировались от выставления всех 3х создаваемых объектов (2х мувиков и 1 текстового поля) на getNextHighestDepth() до просто задания их на конкретном уровне. И никаких результатов ( |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
// количество картинок, которое из xml брать надо // допустим будет 54; var length:Number = 54; // количество столбцов, к примеру 15 var numColumns:Number = 15; // вычисляем количество строк относительно количества столбцов var numRows:Number = Math.ceil(length / numColumns); // для подсчета количества созданных тайлов var n:Number = 0; for (var i:Number = 0; i < numRows; i++) { for (var j:Number = 0; j < numColumns; j++) { // создаем контейнер для изображения и текстового поля и позиционируем var tile:MovieClip = createEmptyMovieClip("tile" + n, getNextHighestDepth()); tile._x = j * 40; tile._y = i * 40; // контейнер для картинки var image:MovieClip = tile.createEmptyMovieClip("image", tile.getNextHighestDepth()); // грузим изображение... // текст var txt:TextField = tile.createTextField("txt", tile.getNextHighestDepth(), 0, 0, 0, 0); txt.autoSize = "left"; txt.text = n.toString(); // если количество созданных тайлов достигло общего числа изображений, // то останавливаем цикл. if (++n == length) break; } } ctrl + shift + enter |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
Весьма благодарен! Наконец-то разобрался, что где и как создавать.
Теперь в дебаггере - да, видны переменные и т.д. но - если пишу Ваш код в новом мувиклипе - код работает. аналогично Вашему, пишу в своём вот так: var kart:MovieClip = createEmptyMovieClip("kart"+numkart+"_mc", getNextHighestDepth()); // позиционирую _x, _y и т.д. var image:MovieClip = kart.createEmptyMovieClip("image", kart.getNextHighestDepth()); //загружаю сюда loadClip (именно loadClip а не loadMovie), чтоб потом привязать листенер к лоадеру и перехватить размеры подгружаемых картинок //далее создаю текстфилд var img_desc:TextField = kart.createTextField("img_desc", kart.getNextHighestDepth(), 0, 0, 100, 100); img_desc.border = true; img_desc.html = true; img_desc.multiline = false; img_desc.wordWrap = false; img_desc.htmlText = txt_url1; Странно. Может всё-таки я чего-то в параметрах textField'a "не то"/"недо" указал? Пробовал ставить html = false и обращаться к img_desc.text - то-же самое - значение есть, а на экране - одни картинки, текста нет. "Опять где-то точку с запятой пропустил"? <:-> |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
гм
пожалуйста, подскажите, есть-ли наработки где ещё смотреть в таких случаях? никаких других манипуляций с данными объектами извне я не произвожу- стало-быть путаница внутри содержащего все эти картинки клипа :-\ только вот где ) |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Выкладывай исходник тогда. Я так х.з.
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 99
|
source mj_nooker.rar на FileShare.in.ua
вот там-же - xml и css по идее css должен подгружаться в текст - но текста пока нет ) разборки полётов - в слое AS мувиклипа vaha, остальные, думаю, не стоят внимания. спасибо за помощь и информацию ! |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Не отображается из-за маски. Тебе нужно внедрить свой шрифт в приложение.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|