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

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

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

Регистрация: Dec 2010
Сообщений: 37
По умолчанию Не работает цикл

Код AS1/AS2:
		data_xml.onLoad = function() {
			colXML = data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes.length; 
			//trace(data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes.length)
			for(i=0; i<colXML; i++){
				trace(_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i])
				movie1=i+objname;
				objname=_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes.id;
				trace(movie1)
			//objname = _root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.name
			ID1 = _root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes.id
			//trace(ID1)
			movie1=_root.attachMovie("ID"+ID1, objname, this.getNextHighestDepth());
			//trace(_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.posX)
			movie1._x=_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes.posX;
			//trace(objname)
			movie1._y=_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes.posY;
			movie1._visible=_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes.vis;
			movie1.loadMovie(_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes.ssil, objname)
			trace(objname)
			//movie1.getURL(_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.sobONPRESS)
			movie1.onRollOver = function () {
				//trace("ssss")
				getURL("http://pff.ru", "_blank")
				this.getURL(_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.sobONPRESS)
				/*if (movie1._root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.sobONPRESS) {
				movie1.getURL(_root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.sobONPRESS);
				}*/
			}
			//trace(movie1._root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[1].attributes.sobONPRESS);
			//trace(_root.data_xml.nodeValue[0])
			//objname++;
			//movie1++;
			} // for закрыли
		};
Вопрос создает почему то 1 объект, а не 3 (их по запросу 3 проверял трейсом) и то последний. В чём проблема ?

Старый 19.03.2011, 22:03
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
О боже. Вы про переменные что-нибудь слышали? _root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes надо в переменную записать, а не писать эту простыню тысячу раз подряд.
this в данном случае ссылается на объект через который вызван обработчик, т.е. на data_xml, поэтому this.getNextHighestDepth() возвращает не то, что вы ожидаете.
Далее, вообще, не ясно, что вы творите с movie1.

Старый 19.03.2011, 23:06
Alexvblbl вне форума Посмотреть профиль Отправить личное сообщение для Alexvblbl Найти все сообщения от Alexvblbl
  № 3  
Ответить с цитированием
Alexvblbl

Регистрация: Dec 2010
Сообщений: 37
Цитата:
Сообщение от udaaff Посмотреть сообщение
О боже. Вы про переменные что-нибудь слышали? _root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes надо в переменную записать, а не писать эту простыню тысячу раз подряд.
this в данном случае ссылается на объект через который вызван обработчик, т.е. на data_xml, поэтому this.getNextHighestDepth() возвращает не то, что вы ожидаете.
Далее, вообще, не ясно, что вы творите с movie1.
Допустим я задам переменную для _root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes она будет обращаться таким путём МояПеременная.id ?
Ну дальше не работает. Это уже второй вопрос. Сейчас стоит вопрос не в этом.
А как сделать так, что бы работал цикл? Точнее, что бы создавались новые объекты, а не дублировался тот же объект в новое место?

Старый 19.03.2011, 23:10
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ну так вы глубину неверно задаете.
Цитата:
this в данном случае ссылается на объект через который вызван обработчик, т.е. на data_xml, поэтому this.getNextHighestDepth() возвращает не то, что вы ожидаете.
Цитата:
Допустим я задам переменную для _root.data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes она будет обращаться таким путём МояПеременная.id ?
Да.

Старый 19.03.2011, 23:43
Alexvblbl вне форума Посмотреть профиль Отправить личное сообщение для Alexvblbl Найти все сообщения от Alexvblbl
  № 5  
Ответить с цитированием
Alexvblbl

Регистрация: Dec 2010
Сообщений: 37
Спасибо. Помогло.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от udaaff Посмотреть сообщение
О боже.
Я тоже его вспомнил.

Старый 19.03.2011, 23:48
Alexvblbl вне форума Посмотреть профиль Отправить личное сообщение для Alexvblbl Найти все сообщения от Alexvblbl
  № 7  
Ответить с цитированием
Alexvblbl

Регистрация: Dec 2010
Сообщений: 37
Цитата:
Сообщение от Bgg Посмотреть сообщение
Я тоже его вспомнил.
Хе Хе ))
Код AS1/AS2:
movie1.onRollOver = function () {
getURL("http://pff.ru", "_blank")
}
Ну тогда почему не работает вот такой код в том же цикле ?

Старый 20.03.2011, 00:03
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Вы с movie1 непонятные действия производите. Сначала в эту переменную записываете строку.
Код AS1/AS2:
movie1=i+objname;
Затем аттачите в неё мувик.
Код AS3:
movie1=_root.attachMovie("ID"+ID1, objname, _root.getNextHighestDepth());
А потом содержимое этого мувика перезаписываете содержимым загружаемого контента.
Код AS1/AS2:
movie1.loadMovie(attributes.ssil, objname)
И вот во время этой загрузки обработчик слетает. После загрузки наследуются только некоторые свойства, такие как координаты.
Поэтому onRollOver у вас не должен работать.

Вам здесь нужно создать пустой мувиклип, повесить на него ваш обработчик. В этом клипе создать контейнер. И грузить содержимое непосредственно в этот контейнер.

Старый 20.03.2011, 00:46
Alexvblbl вне форума Посмотреть профиль Отправить личное сообщение для Alexvblbl Найти все сообщения от Alexvblbl
  № 9  
Ответить с цитированием
Alexvblbl

Регистрация: Dec 2010
Сообщений: 37
Цитата:
Сообщение от udaaff Посмотреть сообщение

Вам здесь нужно создать пустой мувиклип, повесить на него ваш обработчик. В этом клипе создать контейнер. И грузить содержимое непосредственно в этот контейнер.
Эмм, и как код примерно выглядит ?

Старый 20.03.2011, 00:50
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
var mc:MovieClip = _root.createEmptyMovieClip("mc", _root.getNextHighestDepth());
mc.onRollOver = mc_onRollOverHandler;
var container:MovieClip = mc.createEmptyMovieClip("container", 0);
container.loadMovie("test.png");
 
function mc_onRollOverHandler():Void
{
	trace(this + " onRollOver");
}

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

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

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


 


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


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