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

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

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

Регистрация: Aug 2006
Сообщений: 35
По умолчанию Flash AS2 Парсер

Здравствуйте, ищу в инете третий день, не могу найти исходника на флеш парсер HTML страниц.
В частности есть флеш радио плеер, нужно чтобы со страницы айскаста вытягивалось название песни.

То есть берём код HTML страницы, я так понял оператором GetURL, ищем в нём "Current Song:" и после найденного следующую строчку присваиваем переменной. Ещё нужно как-то теги отсечь...

Код:
</tr>
<tr>
<td>Stream Genre:</td>
<td class="streamdata">Various</td>
</tr>
<tr>
<td>Stream URL:</td>
<td class="streamdata"><a target="_blank" href="http://www.audiorealm.com">http://www.audiorealm.com</a></td>
</tr>
<tr>
<td>Current Song:</td>
<td class="streamdata">Queen - Boghemian Phapsody</td>
</tr>
</table>
</div>
<div class="roundbottom"><img src="/corner_bottomleft.jpg" class="corner" style="display: none"></div>
</div>
<br><br>&nbsp;
Помогите пожалуйста, очень хочется научиться программировать на as для флеша, но когда пытаюсь изучать, ничего не понимаю и спросить не у кого...

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

Регистрация: Dec 2006
Сообщений: 1,764
а почему в Разделе АS3?
__________________
а за окном атлантический океан!

Старый 29.06.2013, 20:02
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Оператором GetURL вы страницу не "возьмете". Смотрите в сторону класса LoadVars.
__________________
Идите первым!

Старый 30.06.2013, 15:42
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Через indexOf ищем строку 'Current Song\r\n<td class="streamdata">' получаем индекс символа, к которому добавляем еще длину искомой строки. С помощью substr отрезаем весь текст до начала названия. Потом ищем </td> и отрезаем все что правее.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.07.2013, 14:30
Nikem79 вне форума Посмотреть профиль Отправить личное сообщение для Nikem79 Найти все сообщения от Nikem79
  № 5  
Ответить с цитированием
Nikem79

Регистрация: Aug 2006
Сообщений: 35
Спасибо за подсказки. Было бы не плохо побольше кода написать, может быть есть подобный код уже написанный, который я мог бы адаптировать для своих целей?..

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
По сути это обычный XML.
Побольше кода..... ну.. извольте:

Код AS1/AS2:
function LoadDat(){
	LD.desc.text = "Загрузка уровней"
	if ( local() ){
		urlxml = "levels.xml"
	} else {
		urlxml = _level0.appUrl+"levels.xml?hash="+random(9999999)+"&CRC="+random(9999999)
	}
 
	STAT.text += "\nLoading "+"LEVELS"
 
	var prof:XML = new XML();
	prof.ignoreWhite = true;
	prof.load(urlxml);
	ShowLoad( prof, desc )		
	prof.onLoad = function(success) {
		if (success)
		{	
			if (prof.status != 0){
				var errorMessage:String;
				switch (prof.status) 
				{
					case -2 :
						errorMessage = "A CDATA section was not properly terminated.";
						break;
					case -3 :
						errorMessage = "The XML declaration was not properly terminated.";
						break;
					case -4 :
						errorMessage = "The DOCTYPE declaration was not properly terminated.";
						break;
					case -5 :
						errorMessage = "A comment was not properly terminated.";
						break;
					case -6 :
						errorMessage = "An XML element was malformed.";
						break;
					case -7 :
						errorMessage = "Out of memory.";
						break;
					case -8 :
						errorMessage = "An attribute value was not properly terminated.";
						break;
					case -9 :
						errorMessage = "A start-tag was not matched with an end-tag.";
						break;
					case -10 :
						errorMessage = "An end-tag was encountered without a matching start-tag.";
						break;
					default :
						errorMessage = "An unknown error has occurred.";
						break;
				}
				STAT.text += "\nXML Structure Error:\n"+prof.status+" - "+errorMessage
				STAT._visible = true
			}
			else
			{
				var node = prof.firstChild
				trace("XML LOAD NODES:"+node.childNodes.length+" NodeName:"+node.nodeName)
 
				for ( var T in node.attributes){
					trace("OPTIONS."+T+"="+node.attributes[T])
					OPTIONS[T] = node.attributes[T]
				}
 
				for ( var i=0; i<node.childNodes.length; i++){
					var nodeC = node.childNodes[i]
 
					switch ( nodeC.nodeName )
					{
						case "LEVEL":
							var TR = new Object()
								TR.POINTS = new Array()
								TR.LINES = new Array()
								TR.OBJECTS = new Array()
 
							for ( var T in nodeC.attributes){ // Разобрали базовый узел тутора
								TR[T] = nodeC.attributes[T] 
								trace("       addTutor att:"+T+"="+nodeC.attributes[T])
							}
 
							//trace( "-------------"+nodeC.nodeName+" id="+ TR.id)
 
							for ( var j=0; j<nodeC.childNodes.length; j++){
								var nodeL = nodeC.childNodes[j]	
								//trace( nodeL.nodeName )
								switch( nodeL.nodeName ){
									case "point":
										var cfgObj = new Object()
										for ( var T in nodeL.attributes){ 
											cfgObj[T] = nodeL.attributes[T]
											//trace( "         "+T +"="+ nodeL.attributes[T])
										}
										TR.POINTS[Number(cfgObj.id)] = cfgObj
									break;	
									case "line":
										var cfgObj = new Object()
										for ( var T in nodeL.attributes){ 
											cfgObj[T] = nodeL.attributes[T]
											//trace( "         "+T +"="+ nodeL.attributes[T])
										}
										TR.LINES.push( cfgObj )
									break;	
									case "object":
										var cfgObj = new Object()
										for ( var T in nodeL.attributes){ 
											cfgObj[T] = nodeL.attributes[T]
											//trace( "         "+T +"="+ nodeL.attributes[T])
										}
										TR.OBJECTS.push( cfgObj )
									break;										
								}
							}
 
 
							LEVELSCFG[Number(TR.id)] = TR
 
							trace( TR.id+" -- "+TR.POINTS.length +" / "+TR.LINES.length+" / "+TR.OBJECTS.length )
 
						break;			
					}
				}
				STAT.text += "...OK"
				LD.removeMovieClip();
				LDR.removeMovieClip();				
				_root.gotoAndPlay(2)
			}				
		}
		else{
			STAT.text += "\nXML LOAD ERROR: "+urlxml
			STAT._visible = true
		}
	}
}
Добавлено через 22 минуты
К слову сказать, в общем случае вы Html не сможете прочитать, если crossdomain.xml этого не предполагает.
Локально работать будет, удаленно может перестать.
Но могу ошибаться.
Но будьте готовы.
Попробуйте сначала его просто оттуда загрузить.
Может быть и париться далее не стоит.
Хотя, о5-таки, можно вывернутсья через рнр....
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 03.07.2013, 18:27
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
Сообщение от dark256 Посмотреть сообщение
По сути это обычный XML.
В xml все теги должны быть закрыты, в отличии от html. Например, в этом html есть теги <br>, об которые парсер xml споткнется.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Хм.... Флэш он... ХМЛ ест как бы.... Сквозь пальцы. Либо схомячит, либо нет.
Я парсил ответ ВК со списком приложений. А уж кривее чем у ВК ни штмл, ни хмл, ни джсона нету.....
Надо произвести эксперимент и точно убедитсья.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 04.07.2013, 10:15
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Дарк - просто поверь. Нtml кривее. )
__________________
Отряд Котовскага

Старый 04.07.2013, 19:11
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 10  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Скучно спорить с АС3-шниками... вы все такие закомплексованные....
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

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

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


 


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


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