Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   погода во флеше (http://www.flasher.ru/forum/showthread.php?t=119516)

DrSmyrke 22.12.2008 23:56

погода во флеше
 
мне собственно нужно чтобы во флеше отображалась погда моего города, я на яндексе нашел вот такой код
-------------------------------------
<a href="http://clck.yandex.ru/redir/dtype=stred/pid=7/cid=1228/*http://weather.yandex.ru/index.xml?city=26258"><img src="http://info.weather.yandex.net/informer/175x114/26258.png" border="0" alt="Яндекс.Погода"/><img width="1" height="1" src="http://clck.yandex.ru/click/dtype=stred/pid=7/cid=1227/*http://img.yandex.ru/i/pix.gif" alt="" border="0"/></a>
-------------------------------------
это банер с погодой для моего города, если вставить его в HTML, то он отображается как картина с сылкой, но как сделать так, чтобы всеэто во флеше работало, не понимаю! памагите люди добрые, а то уже весь мозг измучал в поисках истины!
заранее СПС.:o

artem_fs 23.12.2008 00:40

судя по этому коду яндекс генерирует картинку сам в эту:
http://info.weather.yandex.net/infor...x114/26258.png
вариант подгружать эту картинку в флэшку.
а в идеале использовать погоду в xml от гисметео, подставляя свои картинки.

zurkis 23.12.2008 00:41

ну так а что мешает взять с сайта допустим gismeteo.ru погодный информер, там помоему есть флешовые, они дают код, ты его вставляешь в свою страничку и флешовый погодный инофрмер у тебя

DrSmyrke 23.12.2008 00:46

Цитата:

Сообщение от artem_fs (Сообщение 785629)
судя по этому коду яндекс генерирует картинку сам в эту:
http://info.weather.yandex.net/infor...x114/26258.png
вариант подгружать эту картинку в флэшку.
а в идеале использовать погоду в xml от гисметео, подставляя свои картинки.

ты так не сможешь сделать, потому что он название картинки каждый день меняет

Добавлено через 1 минуту
а за гисметео огромное спасибо вам!!! низачто не догадался бы! ВЦ

aksios 23.12.2008 01:04

Есть куча информеров и пользующих их флешек - гуглить, гуглить и есчо раз гуглить.
Готовый стоит $8.

DrSmyrke 23.12.2008 02:19

вот еще один вопросик по теме, стырил я XML с гисметео, вот токо не могу разобраться в нем.
Код:

- <MMWEATHER>
- <REPORT type="frc3">
- <TOWN index="27612" sname="%CC%EE%F1%EA%E2%E0" latitude="56" longitude="38">
- <FORECAST day="23" month="12" year="2008" hour="3" tod="0" predict="18" weekday="3">
  <PHENOMENA cloudiness="3" precipitation="6" rpower="0" spower="0" />
  <PRESSURE max="746" min="744" />
  <TEMPERATURE max="-6" min="-8" />
  <WIND min="5" max="9" direction="4" />
  <RELWET max="89" min="84" />
  <HEAT min="-13" max="-11" />
  </FORECAST>
- <FORECAST day="23" month="12" year="2008" hour="9" tod="1" predict="24" weekday="3">
  <PHENOMENA cloudiness="3" precipitation="6" rpower="0" spower="0" />
  <PRESSURE max="745" min="743" />
  <TEMPERATURE max="-6" min="-8" />
  <WIND min="5" max="9" direction="3" />
  <RELWET max="91" min="86" />
  <HEAT min="-12" max="-10" />
  </FORECAST>
- <FORECAST day="23" month="12" year="2008" hour="15" tod="2" predict="30" weekday="3">
  <PHENOMENA cloudiness="3" precipitation="6" rpower="0" spower="0" />
  <PRESSURE max="746" min="744" />
  <TEMPERATURE max="-5" min="-7" />
  <WIND min="5" max="9" direction="3" />
  <RELWET max="89" min="84" />
  <HEAT min="-12" max="-10" />
  </FORECAST>
- <FORECAST day="23" month="12" year="2008" hour="21" tod="3" predict="36" weekday="3">
  <PHENOMENA cloudiness="3" precipitation="10" rpower="0" spower="0" />
  <PRESSURE max="748" min="746" />
  <TEMPERATURE max="-6" min="-8" />
  <WIND min="3" max="6" direction="3" />
  <RELWET max="92" min="87" />
  <HEAT min="-9" max="-7" />
  </FORECAST>
  </TOWN>
  </REPORT>
  </MMWEATHER>

не понимаю как мне взять данные хотябы с первого дочернего узла, вот что я натворил:
Код AS1/AS2:

function init () {
sdf.text=myXML.firstChild.firstChild.firstChild.attributes.sname;
}
myXML = new XML();
myXML.onLoad = init;
myXML.load("27612_1.xml");

пробовал по разному но все равно ничего не пишет в текстовое поле, что делать? памагите, плиз! Заранее СПС

zurkis 23.12.2008 02:57

попробуй написать для данного xml парсер, да и зачем брать чужой xml больше провозишься, как было сказано в 5 посте, лучше поискать в гугле и найти что тебе надо, я уверен что там есть такое, либо купить, стоит не так уж и дорого, больше провозишься если будешь с чужим разбираться

DrSmyrke 23.12.2008 08:10

я хочу разобраться для самопознания, если все время покупать чужие работы сам никогда не научишься ничего делать и мозги отрафируются!
памагите плиз разабраться....!

zurkis 23.12.2008 11:31

да не против помочь разобраться, но ты бы сначала разобрался для начала со своим xml и пояснил что и за что отвечает? и тогда давай вместе решать твои вопросы

artem_fs 23.12.2008 11:35

Цитата:

Сообщение от DrSmyrke (Сообщение 785631)
ты так не сможешь сделать, потому что он название картинки каждый день меняет

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

dimarik 23.12.2008 12:20

Ну, давайте попробуем.

Писал на коленке, не тестил даже. Но суть должна быть понятна =)

Это только для затравки.

Код AS1/AS2:

////////////////////////////////////////////////////////////////////////////////
//
// 
//
////////////////////////////////////////////////////////////////////////////////
 
/**
 *        @author                                Dimarik
 *        @version                        1.0
 *        @playerversion                Flash 6
 *        @langversion                1.0
 *
 *  Wheather tracker
 */

 
 
//---------------------
// Constants
//---------------------
 
// Tags
var TAG_TOWN:                        String = 'TOWN';
var TAG_FORECAST:                String = 'FORECAST';
var TAG_PHENOMENA:                String = 'PHENOMENA';
var TAG_PRESSURE:                String = 'PRESSURE';
var TAG_TEMPERATURE:        String = 'TEMPERATURE';
var TAG_WIND:                        String = 'WIND';
var TAG_RELWET:                        String = 'RELWET';
var TAG_HEAT:                        String = 'HEAT';
 
// Attributes
var ATTR_TOWN_NAME:                String = 'sname';
 
var ATTR_DAY:                        String = 'day';
var ATTR_MONTH:                        String = 'month';
var ATTR_YEAR:                        String = 'year';
var ATTR_HOUR:                        String = 'hour';
 
var ATTR_CLOUDINESS:        String = 'cloudiness';
 
 
//---------------------
//  Variables
//---------------------
var weatherData:                Object = new Object();
 
var town:                        String = '';
 
var _iterator:                Number;
 
// Создать на сцене клип с кадрами-иконками облачности
var cloudnessMC:        MovieClip;
 
 
function parseXML(value:XMLNode):void {
 
        var node:        XMLNode;
        var attr:        Object;
 
        while (node = doc.firstChild) {
                attr = node.attributes;
 
                switch ( node.nodeName.toUpperCase() ) {
                        case TAG_TOWN:
                                this.town = attr[ATTR_TOWN_NAME];
                                break;
 
                        case TAG_FORECAST:
                                var hour:                Number = parseInt(attr[ATTR_HOUR]);
                                var day:                Number = parseInt(attr[ATTR_DAY]);
                                var month:                Number = parseInt(attr[ATTR_MONTH]);
                                var year:                Number = parseInt(attr[ATTR_YEAR]);
                                var timeStamp:        Date  = new Date(year, month - 1, day, hour);
                                this._iterator = timeStamp.getTime();
                                this.weatherData[this._iterator] = new Object();
                                // TODO: tod, predict, weekday
                                break;
 
                        case TAG_PHENOMENA:
                                this.weatherData[this._iterator].PHENOMENA = new Object();
                                this.weatherData[this._iterator].PHENOMENA.cloudiness = attr[ATTR_CLOUDINESS];
                                // or
                                this.cloudnessMC.gotoAndStop( parseInt(attr[ATTR_CLOUDINESS]) || 'no_cloudiness_status');
                                break;
 
                        // TODO, TODO, TODO
                }
 
                this.parseXML(node);
                node.removeNode();
        }
}
 
function requestForecast():Void {
        xmlin:XML = new XML();
        xmlin.ignoreWhite = true;
 
        var app:Object = this;
 
        xmlin.onLoad = function(success:Boolean):Void {
                if (success) {
                        var doc:XMLNode = this.firstChild.firstChild.firstChild;
                        app.parseXML(doc);
                } else {
                        trace('Error: ');
                }
        };
 
        xmlin.load("27612_1.xml");
}
 
this.requestForecast();


DrSmyrke 23.12.2008 13:53

Цитата:

Сообщение от zurkis (Сообщение 785681)
да не против помочь разобраться, но ты бы сначала разобрался для начала со своим xml и пояснил что и за что отвечает? и тогда давай вместе решать твои вопросы

этот XML содержит данные о погоде в моем городе, вот как он расшифровывается:

Описание формата:
TOWN информация о пункте прогнозирования:
index уникальный пятизначный код города
sname закодированное название города
latitude широта в целых градусах
longitude долгота в целых градусах
FORECAST информация о сроке прогнозирования:
day, month, year дата, на которую составлен прогноз в данном блоке
hour местное время, на которое составлен прогноз
tod время суток, для которого составлен прогноз: 0 - ночь 1 - утро, 2 - день, 3 - вечер
weekday день недели, 1 - воскресенье, 2 - понедельник, и т.д.
predict заблаговременность прогноза в часах
PHENOMENA атмосферные явления:
cloudiness облачность по градациям: 0 - ясно, 1- малооблачно, 2 - облачно, 3 - пасмурно
precipitation тип осадков: 4 - дождь, 5 - ливень, 6,7 – снег, 8 - гроза, 9 - нет данных, 10 - без осадков
rpower интенсивность осадков, если они есть. 0 - возможен дождь/снег, 1 - дождь/снег
spower вероятность грозы, если прогнозируется: 0 - возможна гроза, 1 - гроза
PRESSURE атмосферное давление, в мм.рт.ст.
TEMPERATURE температура воздуха, в градусах Цельсия
WIND приземный ветер
min, max минимальное и максимальное значения средней скорости ветра, без порывов
direction направление ветра в румбах, 0 - северный, 1 - северо-восточный, и т.д.
RELWET относительная влажность воздуха, в %
HEAT комфорт - температура воздуха по ощущению одетого по сезону человека, выходящего на улицу

вот надо сделать что бы во флеш все грузилось, а в учебниках описаны примеры анализа XML с одной или двумя переменными, а как анализировать вот такие сложные XML ни где не нашел, да и сам пытался допетрить, но ни как не получается!!!

Добавлено через 1 минуту
этот XML содержит данные о погоде в моем городе, вот как он расшифровывается:

Описание формата:
TOWN информация о пункте прогнозирования:
index уникальный пятизначный код города
sname закодированное название города
latitude широта в целых градусах
longitude долгота в целых градусах
FORECAST информация о сроке прогнозирования:
day, month, year дата, на которую составлен прогноз в данном блоке
hour местное время, на которое составлен прогноз
tod время суток, для которого составлен прогноз: 0 - ночь 1 - утро, 2 - день, 3 - вечер
weekday день недели, 1 - воскресенье, 2 - понедельник, и т.д.
predict заблаговременность прогноза в часах
PHENOMENA атмосферные явления:
cloudiness облачность по градациям: 0 - ясно, 1- малооблачно, 2 - облачно, 3 - пасмурно
precipitation тип осадков: 4 - дождь, 5 - ливень, 6,7 – снег, 8 - гроза, 9 - нет данных, 10 - без осадков
rpower интенсивность осадков, если они есть. 0 - возможен дождь/снег, 1 - дождь/снег
spower вероятность грозы, если прогнозируется: 0 - возможна гроза, 1 - гроза
PRESSURE атмосферное давление, в мм.рт.ст.
TEMPERATURE температура воздуха, в градусах Цельсия
WIND приземный ветер
min, max минимальное и максимальное значения средней скорости ветра, без порывов
direction направление ветра в румбах, 0 - северный, 1 - северо-восточный, и т.д.
RELWET относительная влажность воздуха, в %
HEAT комфорт - температура воздуха по ощущению одетого по сезону человека, выходящего на улицу

вот надо сделать что бы во флеш все грузилось, а в учебниках описаны примеры анализа XML с одной или двумя переменными, а как анализировать вот такие сложные XML ни где не нашел, да и сам пытался допетрить, но ни как не получается!!!

Добавлено через 1 час 58 минут
Цитата:

Сообщение от dimarik (Сообщение 785687)
Ну, давайте попробуем.

Писал на коленке, не тестил даже. Но суть должна быть понятна =)

Это только для затравки.

Код AS1/AS2:

////////////////////////////////////////////////////////////////////////////////
//
// 
//
////////////////////////////////////////////////////////////////////////////////
 
/**
 *        @author                                Dimarik
 *        @version                        1.0
 *        @playerversion                Flash 6
 *        @langversion                1.0
 *
 *  Wheather tracker
 */

 
 
//---------------------
// Constants
//---------------------
 
// Tags
var TAG_TOWN:                        String = 'TOWN';
var TAG_FORECAST:                String = 'FORECAST';
var TAG_PHENOMENA:                String = 'PHENOMENA';
var TAG_PRESSURE:                String = 'PRESSURE';
var TAG_TEMPERATURE:        String = 'TEMPERATURE';
var TAG_WIND:                        String = 'WIND';
var TAG_RELWET:                        String = 'RELWET';
var TAG_HEAT:                        String = 'HEAT';
 
// Attributes
var ATTR_TOWN_NAME:                String = 'sname';
 
var ATTR_DAY:                        String = 'day';
var ATTR_MONTH:                        String = 'month';
var ATTR_YEAR:                        String = 'year';
var ATTR_HOUR:                        String = 'hour';
 
var ATTR_CLOUDINESS:        String = 'cloudiness';
 
 
//---------------------
//  Variables
//---------------------
var weatherData:                Object = new Object();
 
var town:                        String = '';
 
var _iterator:                Number;
 
// Создать на сцене клип с кадрами-иконками облачности
var cloudnessMC:        MovieClip;
 
 
function parseXML(value:XMLNode):void {
 
        var node:        XMLNode;
        var attr:        Object;
 
        while (node = doc.firstChild) {
                attr = node.attributes;
 
                switch ( node.nodeName.toUpperCase() ) {
                        case TAG_TOWN:
                                this.town = attr[ATTR_TOWN_NAME];
                                break;
 
                        case TAG_FORECAST:
                                var hour:                Number = parseInt(attr[ATTR_HOUR]);
                                var day:                Number = parseInt(attr[ATTR_DAY]);
                                var month:                Number = parseInt(attr[ATTR_MONTH]);
                                var year:                Number = parseInt(attr[ATTR_YEAR]);
                                var timeStamp:        Date  = new Date(year, month - 1, day, hour);
                                this._iterator = timeStamp.getTime();
                                this.weatherData[this._iterator] = new Object();
                                // TODO: tod, predict, weekday
                                break;
 
                        case TAG_PHENOMENA:
                                this.weatherData[this._iterator].PHENOMENA = new Object();
                                this.weatherData[this._iterator].PHENOMENA.cloudiness = attr[ATTR_CLOUDINESS];
                                // or
                                this.cloudnessMC.gotoAndStop( parseInt(attr[ATTR_CLOUDINESS]) || 'no_cloudiness_status');
                                break;
 
                        // TODO, TODO, TODO
                }
 
                this.parseXML(node);
                node.removeNode();
        }
}
 
function requestForecast():Void {
        xmlin:XML = new XML();
        xmlin.ignoreWhite = true;
 
        var app:Object = this;
 
        xmlin.onLoad = function(success:Boolean):Void {
                if (success) {
                        var doc:XMLNode = this.firstChild.firstChild.firstChild;
                        app.parseXML(doc);
                } else {
                        trace('Error: ');
                }
        };
 
        xmlin.load("27612_1.xml");
}
 
this.requestForecast();


спасибо конечно большое, но почемуто не фурычит она, выдает
параметр "null" и все тут!

dimarik 25.12.2008 00:42

Продолжать будем? Нашел одну ошибку
Код AS1/AS2:

while (node = doc.firstChild) {

заменить, естессно, на
Код AS1/AS2:

while (node = value.firstChild) {

если интересно, можно нормальный трекер потихонечку собрать =)

RAlfDog 06.01.2009 05:40

Цитата:

Сообщение от DrSmyrke (Сообщение 785650)
вот еще один вопросик по теме, стырил я XML с гисметео, вот токо не могу разобраться в нем.
пробовал по разному но все равно ничего не пишет в текстовое поле, что делать? памагите, плиз! Заранее СПС

Вот вам XML-парсер (делал в одном своём проекте), разбирает XML и создает на его основе объект с данными свойствами и значениями:
Код AS1/AS2:

// Variables
var XMLdata:XML;
var weatherObj:Object = new Object();
 
// Functions
function parseNodes(elem:XMLNode, hodeline:Object):Void {
        if (elem.nodeType == 1) {
            hodeline[elem.nodeName] = {};
            hodeline[elem.nodeName]['attributes'] = {};
            parseNodeAttributes(elem,hodeline[elem.nodeName]['attributes']);
        }
        if (elem.nodeType == 3) {
            parseNodeText(elem,hodeline);
        }
        if (elem.hasChildNodes) {
            parseNodes(elem.firstChild,hodeline[elem.nodeName]);
        }
        if (elem.nextSibling != null) {
            parseNodes(elem.nextSibling,hodeline);
        }
}
 
function parseNodeAttributes(elem:XMLNode, objectline:Object):Void {
        var n:Number;
        for (n in elem.attributes) {
            objectline[n] = elem.attributes[n];
        }
}
 
function parseNodeText(elem, objectParent:Object):Void {
        _root.createTextField("my_txt",1,100,100,300,100);
        _root.my_txt._visible = false;
        _root.my_txt.html = true;
        _root.my_txt.condenseWhite = true;
        _root.my_txt.htmlText = elem.nodeValue;
        if (_root.my_txt.htmlText.length <= 0) {
            elem.nodeValue = _root.my_txt.htmlText;
        }
        _root.my_txt.removeTextField();
        if (elem.nodeValue.length > 0) {
            objectParent['text'] = elem.nodeValue;
        }
}
 
// Execute
XMLdata = new XML(imported_xml_text); //imported_xml_text - любой текст в формате xml
XMLdata.ignoreWhite = true; //если не нужно, можно убрать эту строку
parseNodes(XMLdata.lastChild,weatherObj);

и после этого вам остается только обратиться к нужному свойству объекта weatherObj :
Код AS1/AS2:

var temp:Number = Number(weatherObj.MMWEATHER.REPORT.TOWN.FORECAST.TEMPERATURE.atributtes.max);

Когда парсер разбирает XML, он атрибуты тега пишет в свойство atributtes, а текст тега сохраняет в свойстве text. Т.е. чтобы добраться до направления ветра, нужно вот сюда обращаться WIND.atributtes.direction
:)

KiL33 06.01.2009 10:36

Цитата:

Сообщение от dimarik (Сообщение 786232)
Продолжать будем?
если интересно, можно нормальный трекер потихонечку собрать =)

dimarik, браво, браво!!!
Очень интересно!))

AlexCooper 08.01.2009 21:36

А не пробывал получить готовый свф из их сайта, от декомпилировать и изменить графику на нужную тебе, только не забудь указать откуда данные, тогда на изменение они будут не против.


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

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