Это Спросите Редакторов; ваш шанс задать вопросы Майклу и мне и наш шанс помочь вам напрямую.
В этом посте мы рассмотрим циклы XML, синтаксис массивов, mp3-плееры, Flash CS5.5 и многое другое. Читайте дальше для активных ответов и узнайте, как сказать нам, что вас обманывает …
Спасибо за все Ваши вопросы!
Входящие Activetuts + заполнились довольно быстро, и ниже вы найдете ответы на кучу ваших вопросов. Не согласны с тем, что мы сказали? Мы будем рады услышать ваше мнение в комментариях! (Как будто вам нужно было рассказать …)
Джон Доу:
В: У меня проблемы с выяснением того, как перебрать канал XML, на котором есть канал RSS, и отобразить узлы, которые я хочу показать. Я хотел бы посмотреть, как я могу показать все или только первые 3 или 5.
Майкл Джеймс Уильямс:
Привет, Джон (если это твое настоящее имя)!
Позвольте мне сначала дать читателям небольшой контекст. RSS-каналы представляют собой XML-документы в этом формате:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?xml version=»1.0″ encoding=»UTF-8″ ?>
<rss version=»2.0″>
<channel>
<title>Name of channel (eg Activetuts+)</title>
<link>URL to website (eg http://active.tutsplus.com)</link>
<description>Description of channel (eg Browser-Based RIA and Game Development Tutorials)</description>
</channel>
<item>
<title>Title of one item in the feed</title>
<link>URL to that item’s full page</link>
<description>Synopsis of item</description>
<author>Author of item</author>
</item>
<item>
<title>Title of one item in the feed</title>
<link>URL to that item’s full page</link>
<description>Synopsis of item</description>
<author>Author of item</author>
</item>
</rss>
|
Канал RSS будет иметь только один элемент <channel>, но может иметь много элементов <item>. Кроме того, канал может иметь больше дочерних элементов, чем я использовал в этом примере, и каждый элемент может иметь больше или меньше элементов, чем я использовал.
Получив этот документ в объект XML с помощью URLLoader
, вы можете использовать E4X для доступа к полям, соответствующим определенным критериям.
Например, чтобы получить самый первый узел <item>, вы ссылаетесь:
1
|
var itemNode = rssXml.item[0];
|
Так же, как в массиве, 0 говорит: «Дай мне первый элемент». Затем вы можете получить доступ к подузлам этого <item> следующим образом:
1
2
3
4
|
trace(rssXml.item[0].title);
trace(rssXml.item[0].link);
trace(rssXml.item[0].description);
trace(rssXml.item[0].author);
|
Чтобы получить первые три элемента, используйте цикл for
:
1
2
3
4
5
6
7
|
for (var i:int = 0; i < 3; i++)
{
trace(rssXml.item[i].title);
trace(rssXml.item[i].link);
trace(rssXml.item[i].description);
trace(rssXml.item[i].author);
}
|
Берегись, хотя; если в ленте нет как минимум трех элементов, вы получите ошибку. Вы можете проверить, сколько элементов в ленте, используя rssXml.item.length()
. Обратите внимание, что в отличие от Array, length()
является здесь методом, а не свойством — в нем есть скобки.
Это означает, что вы можете просматривать все элементы в ленте следующим образом:
1
2
3
4
5
6
7
|
for (var i:int = 0; i < rssXml.item.length(); i++)
{
trace(rssXml.item[i].title);
trace(rssXml.item[i].link);
trace(rssXml.item[i].description);
trace(rssXml.item[i].author);
}
|
Надеюсь, это поможет! Возможно, вам придется адаптировать его к вашему конкретному каналу, если он отформатирован не так, как в моем примере, но это должно дать вам основы.
Для полного объяснения XML и E4X, посмотрите AS3 101: XML от Dru Kepple.
Vjeran:
QМожете ли вы объяснить разницу между,
var ar:Array = new Array();
и
var ar:Array = [];
?
Майкл Джеймс Уильямс:
Привет, Вьеран! Хороший вопрос.
Между этими двумя утверждениями нет большой разницы; каждый из них создаст новый массив с именем ar, содержащий ноль элементов — т.е. ar.length
вернет 0
. Разница в деталях.
Во-первых, я видел тесты, которые показывают, что, по крайней мере, во Flash Player 9 выполнение второго оператора занимает немного меньше времени. Мы говорим о миллисекундах или даже долях миллисекунд, но если вы пишете код, интенсивно использующий процессор, то каждый бит помогает. Однако я не уверен, правда ли это в последних версиях Flash Player.
Во-вторых, взгляните на эти два утверждения:
1
|
var ar:Array = new Array(10, 17, 92, 100);
|
1
|
var ar:Array = [10, 17, 92, 100];
|
Эти две строки делают одно и то же: они создают массив ar
четырьмя элементами: первая — 10, вторая — 17, третья — 92, четвертая — 100.
Однако сравните эти два утверждения:
1
|
var ar:Array = new Array(10);
|
1
|
var ar:Array = [10];
|
На этот раз второй оператор создает массив ar
с именем ar
с одним элементом: 10. Но первый оператор создает массив ar
с десятью элементами, каждый из которых пуст.
Это единственные различия, которые я знаю.
Стивен:
Q Я в последних шагах от завершения веб-сайта, и мой друг семьи бросает мне кривую. Ничего нового. За исключением того, что я никогда раньше не размещал аудиоплеер ни на одном из своих сайтов. Друг хочет, чтобы я создал плеер, который может воспроизводить до трех радиоинтервью, которые он дал для книги, которую он опубликовал.
Можете ли вы привести меня к простому и элегантному методу выполнения этого запроса? Ценю любую помощь / совет, который вы можете дать.
И спасибо за последние годы величие! Я стал премиум-участником 2 года назад, но со временем я по-настоящему ценю ваш продукт.
Ян Йейтс:
Если вы хотите встроить музыку в веб-сайт, ActiveDen предлагает почти 400 MP3-плееров . Вот только пара:
- Динамический Mp3-плеер (xml) : AS2, управляемый XML, поддерживает несколько категорий, несколько треков и набрал более 1100 продаж, что говорит о его ценности.
- xml mp3 player — pi 1.0 : это проигрыватель AS3 (если вы заинтересованы в поисках исходного кода), который также настраивается с помощью XML и приносит очки за полный, компактный и «пилюльный» режимы. Очень аккуратный.
- Достойный игрок : если вам нужна простота, это может быть для вас. Перечислите все три ваших трека интервью в XML-файле, затем используйте кнопку пропуска, чтобы просмотреть их. Прямо вперед и дешево, как фишки.
В качестве альтернативы, если вы заинтересованы в том, чтобы собрать вместе аудиоплеер Flash, вот несколько важных моментов, которые мы размещали на сайте в прошлом:
- Go Retro с музыкальным плеером в стиле фанк
- Создать простой и привлекательный MP3-плеер
- Создать Jazzy XML Driven MP3-плеер
- Создайте Drag and Drop MP3 Player с Adobe AIR
Последний ресурс, совершенно бесполезный в вашей ситуации, но приятный для пользователей рынка 🙂
Если вам нужна более конкретная помощь, напишите нам по электронной почте: active [at] tutsplus [dot] com. Удачи на вашем сайте!
Михай Гельмегану:
Q. Планируете ли вы широкий охват новых функций Flash CS 5.5 для мобильной разработки, и если да, то как скоро?
Ян Йейтс:
Мы определенно рассмотрим новые функции, доступные пользователям Flash CS5.5. Из первоначальной обратной связи кажется, что вас там еще не много, но есть много людей, которые просто жаждут погрузиться в потенциал мультисервисных возможностей Flash CS5.5 (кто-то упомянул iOS?). Помимо разработок в области мобильного развертывания, есть также несколько замечательных новых функций рабочего процесса и куча новых улучшений для работы с временной шкалой Flash, которые мне действительно нравятся.
Новые выпуски не всегда популярны, но наша задача не говорить людям, что они должны или не должны вкладывать средства в x, y или z, мы здесь, чтобы информировать наших читателей о том, что им доступно.
К счастью, на данный момент у нас есть несколько фантастических писателей, разработчиков, которые проводят свою трудовую жизнь прямо на переднем крае, так что вы можете ожидать некоторый первоклассный контент Flash CS5.5 очень скоро.
Питер Экеллаерт (в Фейсбуке ):
В: Не лучше ли писать геттеры и сеттеры только с _ (в основном только для распознавания ссылок, так что вы напрямую знаете, что такое геттеры и сеттеры)?
Майкл Джеймс Уильямс:
Привет, Питер — приятно видеть, что писатель Activetuts + принимает участие!
Да, это определенно один вариант. Мы кратко говорили об использовании подчеркивания в качестве префиксов в этом обсуждении Open Mike , но в то время я предлагал использовать их только для всех закрытых и защищенных переменных, для всех переменных целиком или без переменных. Мне никогда не приходило в голову использовать их только для частных и защищенных переменных, которые имеют геттер и сеттер.
Это умная идея; Мне это нравится! Это означает, что вы не можете сразу определить, является ли переменная без префикса подчеркивания частной, защищенной или общедоступной, но если вы используете приличный редактор кода (например, FlashDevelop ), он должен сообщить вам об этом. Таким образом, у вас есть дополнительное преимущество, заключающееся в том, что вы можете определить, имеет ли переменная, на которую вы ссылаетесь, общедоступный установщик или получатель, с которыми вам следует опасаться. Ухоженная.
Бен Чабс:
QСуществует ли CMS для ActionScript? Они работают? Если да, то было бы хорошо для компании запустить собственную CMS или для фрилансера создать собственную CMS для создания Flash-сайтов?
Майкл Джеймс Уильямс:
Привет, Бен 🙂
Системы управления контентом для Flash, безусловно, существуют. Я могу думать о двух из головы:
- Frame от Neil Nand, который также может генерировать и управлять HTML и мобильными версиями Flash сайта. Я видел, как Нейл представлял это на Flash Camp в Бирмингеме в начале года.
- Modularweb CMS , автор Björn Crüger из Piecemaker .
К сожалению, ни один из них еще не был обнародован, но дело в том, что Flash CMS существуют.
Однако … на мой взгляд, я бы не советовал вам создавать новый прямо сейчас. Почему? Потому что я верю, что полноценные Flash-сайты находятся на выходе. Если вы хотите использовать CMS, возьмите один из лучших, которые уже были созданы кем-то другим; сейчас нет смысла прыгать на борт.
Ян Йейтс:
В дополнение к сказанному Майклом, Moto CMS является еще одним примером Flash CMS, и мы запустили учебник по базовому использованию пару месяцев назад. CMS ModularWeb теперь доступна и постоянно совершенствуется. Бьёрн вполне может написать какой-то обзор для Activetuts +, так что следите за своими глазами!
Мнение о Flash CMS смешано и обычно попадает в один из двух лагерей: любить Flash CMS или ненавидеть Flash CMS. Немного похоже на вегемит . Что касается Activetuts +, мы не будем уделять этому много внимания, поскольку будущее Flash не в дизайне веб-сайтов.
Не видел ваш вопрос?
Извините за это, у нас было множество вопросов для проработки, и все еще есть вероятность, что это может появиться в следующем посте « Спросите редакторов» . Если вы хотите задать еще один вопрос в следующий раз, сделайте это, используя форму ниже: