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

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

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

Регистрация: Jun 2005
Адрес: Russia
Сообщений: 238
Отправить сообщение для tandem с помощью ICQ
Question оптимизация 2

а как вот такую штуку оптимизировать:
Код:
pdata = new XML();
pdata.load("list.xml");
list = new Array;
function myOnLoad (){
	list = pdata.firstChild.nextSibling.childNodes;
	p1=list [1].firstChild.nodeValue;
	p2=list [3].firstChild.nodeValue;
	p3=list [5].firstChild.nodeValue;
	p4=list [7].firstChild.nodeValue;
	p5=list [9].firstChild.nodeValue;
	p6=list [11].firstChild.nodeValue;
	p7=list [13].firstChild.nodeValue;
	p8=list [15].firstChild.nodeValue;
	p9=list [17].firstChild.nodeValue;
	p10=list [19].firstChild.nodeValue;
}
playdata.onLoad = myOnLoad;
пробовал в цикл загнать - не работает. :-(

Старый 03.11.2005, 21:43
user356 вне форума Посмотреть профиль Отправить личное сообщение для user356 Найти все сообщения от user356
  № 2  
Ответить с цитированием
user356

Регистрация: Oct 2005
Адрес: Климовск
Сообщений: 16
А это специально, что в одном месте написано pdata, а в другом - playdata?

Старый 03.11.2005, 21:47
kpa.person вне форума Посмотреть профиль Отправить личное сообщение для kpa.person Найти все сообщения от kpa.person
  № 3  
Ответить с цитированием
kpa.person

Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 17
Если надо удобно и красиво используй библиотеку XPath. Очень рульная штука. (http://www.xfactorstudio.com/ActionScript/AS2/XPath/)
А если просто в конкретном примере сделать побыстрее, то цикл.
И если я правильно понял тебе нужны переменные в области xml object;
Код:
pdata = new XML();
scope = this;
pdata.load("list.xml");
list = new Array;
function myOnLoad (){
	list = pdata.firstChild.nextSibling.childNodes;
             max = list.length;// или max = 20; (первые 19 значений)
	for(var i=1; i<max; ++i){
                 scope["p"+i] = list[i].firstChild.nodeValue;
             }
Не очень хорошо, что не используются указатели на область видимости переменных типа "var" или scope.
И такая жесткая техника не всегда приемлема, вдруг придется немного изменить xml и нужно будет переписывать парсер.
Складывать на мой взгляд лучше в массив, чем в нумерованые переменные: arr[i] = ...

Старый 03.11.2005, 22:50
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 4  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Код:
var xml:XML = new XML ();
xml.ignoreWhite = true;
xml.load ('test.xml');
xml.onLoad = onLoaded;

function onLoaded (flag:Boolean):Void {
	if (flag) {
		for (var o:XMLNode = xml.firstChild, i:Number = 0; o != null; o = o.nextSibling, i++) {
			this ['p' + i] = o.firstChild.nodeValue;
		} // end for
	} // end if
}

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

Регистрация: Jun 2005
Адрес: Russia
Сообщений: 238
Отправить сообщение для tandem с помощью ICQ
Цитата:
Сообщение от kpa.person
Если надо удобно и красиво используй библиотеку XPath. Очень рульная штука. (http://www.xfactorstudio.com/ActionScript/AS2/XPath/)
А если просто в конкретном примере сделать побыстрее, то цикл.
И если я правильно понял тебе нужны переменные в области xml object;
Код:
pdata = new XML();
scope = this;
pdata.load("list.xml");
list = new Array;
function myOnLoad (){
	list = pdata.firstChild.nextSibling.childNodes;
             max = list.length;// или max = 20; (первые 19 значений)
	for(var i=1; i<max; ++i){
                 scope["p"+i] = list[i].firstChild.nodeValue;
             }
Не очень хорошо, что не используются указатели на область видимости переменных типа "var" или scope.
И такая жесткая техника не всегда приемлема, вдруг придется немного изменить xml и нужно будет переписывать парсер.
Складывать на мой взгляд лучше в массив, чем в нумерованые переменные: arr[i] = ...
догда другой вопрос:
flash берёт переменные из ХМЛ, но как сделать так чтобы, если я в данный момент заменил этот ХМЛ, то и у пользователя смотревшего в данный момент flashку он тоже "перезагрузился".
Пытался сделать перезагрузку в определённое время, но он похоже грузит из кэша - как-то это мона сделать чтобы грузил заного?

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

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

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


 


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


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