PDA

Просмотр полной версии : Загрузка роликов из FTP в HTML окно


DimaBLR
22.09.2013, 00:00
Добрый вечер уважаемые участники форума. Не надеюсь получить ответ на мою сложную задачу, но тем не менее, надежда гибнет последней. У меня такая задача. Имеем сеть автоматов, которые работают на HTML интерфейсе. Вверху есть свободный баннер в формате swf размером 1090x180px. Очень хотелось бы сделать так, чтобы можно было давать в НЕГО или ВНУТРЬ НЕГО или ВМЕСТО НЕГО (не знаю как правильнее сказать) нашу рекламу. Но чтобы она закачивалась с FTP сервера, то есть регулярно проверяла обновление (появился ли в папке фтп новый ролик) и если да, то прокручивать его после других в этом же окне.
То есть к примеру: есть у нас 3 рекламных ролика. Само окно в html странице ищете по FTP наличие новых роликов, если они есть, то закачать и добавить их к прокрутке после уже существующих.
Реально ли такое сделать или я просто фантазёр ???
П.С. Просьба не кидать помидорами, так как ф совсем чайник во Flash

mooncar
22.09.2013, 00:52
Вопрос не связан напрямую с AS3. Переезжаем.

Akopalipsis
22.09.2013, 01:17
Конечно можно! я только не знаю ( так как только учусь ) можно ли грузить с фтп.. Но в крайнем случаи, для несколько мини реклам можно в бесплатном хостинге зарегистрироваться и там уже файл политики безопасности разместить и...

DimaBLR
22.09.2013, 09:42
Народ если это реально, помогите пожалуйста !!! Как это реализовать ???

Добавлено через 4 минуты
Конечно можно! я только не знаю ( так как только учусь ) можно ли грузить с фтп.. Но в крайнем случаи, для несколько мини реклам можно в бесплатном хостинге зарегистрироваться и там уже файл политики безопасности разместить и...

Так у меня есть платный хостинг. И хотелось бы на него закидывать ролики. Но ведь доступ к нему осуществляется по логину и паролю и соответственно как это указать на Flash ?

Добавлено через 35 минут
Сейчас вот ставлю эксперименты. Я создал окно ролика размером 1090 на 180. Также создал папку на хостинге http://мой-сайт/reklama/banner1.swf. Почитал про свойство Loader на как им сейчас воспользоваться ? То есть я просто хочу чтобы мой ролик загружал содержимое с папки на моем сайте.....

Добавлено через 1 час 54 минуты
Почти получилось, НО есть одно но.
Я создал новое окно размером 1090 на 180
Затем нажал F9
Вписал туда код:
var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
var urlReq:URLRequest = new URLRequest("http://extraremont.com/qiwi/banner1.swf");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);

Но в режиме отладки мне пишет следующее:

Подключение к http://extraremont.com/qiwi/banner1.swf прервано – нет разрешения от file:///C|/Users/AACE%7E1/AppData/Local/Temp/Безымянный%2D1.swf
– Ненадежные локальные SWF-файлы не могут связываться с Интернетом.
SecurityError: Error #2028: Local-with-filesystem SWF file file:///C|/Users/AACE%7E1/AppData/Local/Temp/Безымянный%2D1.swf cannot access Internet URL http://extraremont.com/qiwi/banner1.swf.
at flash.display::Loader/_load()
at flash.display::Loader/load()
at Безымянный_1_fla::MainTimeline/frame1()[Безымянный_1_fla.MainTimeline::frame1:6]
Невозможно показать исходный код в этом месте



Что делать пожалуйста подскажите. То есть как я понимаю мне нужно каким то образом сделать локальный SWF надежным, НО КАК ?

mooncar
22.09.2013, 16:22
DimaBLR, код в сообщении нужно оформлять соответственными тегами. Отредактируйте свой пост.

DimaBLR
23.09.2013, 00:59
совсем мертво ... мдаааааааа

alexcon314
23.09.2013, 08:14
совсем мертво ... мдаааааааа
Ну, зачем же так сразу...
Коротко, ролики помещаются флеш-плеером в свой контекст безопасности. По соображениям безопасности контексты максимально изолированы друг от друга. Что вам и демонстрирует плеер ошибкойSecurityError: Error #2028: Local-with-filesystem SWF file cannot access Internet URL Т.е. файл, помещенный в контекст безопасности local на может просто так получить доступ к сети, нужно особое разрешение.
У флеш-плеера довольно накрученная система безопасности, разберитесь с ней, почитайте справку, форум, поищите упоминания SecurityError в гугле, наконец. Вопрос характерный для начинающего, все через это проходят :).

DimaBLR
23.09.2013, 11:54
С этим я проблему решил. Спасибо за совет. Теперь у меня ролик подгружается из папки на моём сайте.
НО возникла другая проблема. Как только я вместо старого ролика записываю новый, ТО по прежнему у меня проигрывается старый, хоть и его уже не существует в папке на сайте. Как сделать так, чтобы была проверка на обновленность файла ???

alexcon314
23.09.2013, 13:10
Видимо, срабатывает кэш браузера. Попробуйте урл для загрузки делать так:
var url:String = "http://extraremont.com/qiwi/banner1.swf?rnd="+getTimer();

DimaBLR
23.09.2013, 16:07
Видимо, срабатывает кэш браузера. Попробуйте урл для загрузки делать так:
var url:String = "http://extraremont.com/qiwi/banner1.swf?rnd="+getTimer();

Огромное Вам спасибо alexcon314 !!!!!! Помогло, НО теперь при удалении даже всех роликов из папки, плеер при каждом запуске проигрывает в случайной последовательности все ролики что были. Или даже если заменяешь бывший ролик на новый, все равно он в случайно последовательности их проигрывает. То есть насколько я понимаю нужно как то подать команду очитки кеша......
Кстати даже в коде var url:String = "http://extraremont.com/qiwi/banner1.swf?rnd="+getTimer(); мне кажется этот параметр говорит о RANDOM, то есть случайном порядке
МОЖЕТ БЫТЬ ЭТО ПОТОМУ ЧТО Я ЗАМЕНЯЙ В ПАПКЕ РОЛИК НА ДРУГОЙ НО С ТАКИМ ЖЕ ИМЕНЕМ ????

И последний вопрос, если я еще не надоел :))))
Реально ли сделать так, чтобы подгружался не один ролик а несколько при их наличие в папке на сайте. Я уже почитал про Loader в нем, насколько я понял нет такой возможности, но мне кажется что может реально сделать следующим образом.
Создать swf которая проигрывает все что есть в папке с ней, и как раз именно она будет подгружаться с сайта....?

alexcon314
23.09.2013, 19:28
Ваш хостинг не поддерживает php (или другой серверный скрипт)?
Можно было бы использовать эту возможность, написать сервеhный скрипт, который отдавал бы вашему ролику-контейнеру нужные рекламки списком..
мне кажется этот параметр говорит о RANDOM, то есть случайном порядке
по-идее этот трюк всего лишь должен добавлять к строке запроса какой-то уникальный на данном клиенте параметр, неважно как он называется, rnd или еще как-то.. в данном примере используется время, прошедшее после запуска ролика. Чтобы сформировать урл с таким же временем на конце - этто надо постараться :). Попробуйте Math.random().