Я разрабатываю небольшое приложение на AS3. Каждый день вы можете видеть новое изображение.

Все мои изображения хранятся на сервере.

Вот мой код на данный момент:

var imageLoader:Loader = new Loader();

var days:Array = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
var my_date:Date = new Date();
trace(days[my_date.day]);
startBtn.addEventListener(MouseEvent.CLICK, LoadImage, false, 0, true);

function LoadImage(event:MouseEvent):void{
    var image:URLRequest = new URLRequest ("http://www.blabla.com/images/12.jpg");
        imageLoader.load(image);
        addChild (imageLoader);
}

Можно ли сообщить коду следующее изображение (13.jpg) на следующий день? и так каждый день (на следующий день = 14.jpg, на следующий день = 15.jpg .... и т. д.).

Вы знаете, как это сделать?

Большое спасибо за Вашу помощь,

0
user2421975 27 Фев 2014 в 00:03
Итак 7 изображений, по одному на каждый день недели?
 – 
mfa
27 Фев 2014 в 00:35
Да, но на весь год (у меня на сервере 365 изображений)
 – 
user2421975
27 Фев 2014 в 00:36
Так ты хочешь его на каждый день в году? файлы имеют соглашение об именах, считая от 1..365? (может быть, 366 будет разумным)
 – 
mfa
27 Фев 2014 в 00:37
Да. Нет проблем для 366. Мои изображения называются так: "1.jpg", "2.jpg" ... и т. Д.
 – 
user2421975
27 Фев 2014 в 00:40

1 ответ

Лучший ответ

Код ниже должен это сделать. Я взял функцию getDayOfYear отсюда: siafoo.net

Я опубликую некоторые оптимизации функции через некоторое время.

function getDayOfYear(date:Date):Number {   
    var monthLengths:Array = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    // A leap year is divisable by 4, but not by 100 unless divisable by 400.
    if (((date.getFullYear() % 4 == 0) && (date.getFullYear() % 100 != 0)) || (date.getFullYear() % 400 == 0)) {
        monthLengths[1] = 29;
    }

    var dayInYear = 0;
    // get day of year up to month
    for (var i:Number = 0; i < date.getMonth(); i++) {
    dayInYear += monthLengths[i];
    }

    // add day inside month
    dayInYear += date.getDate();

    // Start counting on 0 (optional)
    // dayInYear--;

    return dayInYear;
}


function LoadImage(event:MouseEvent):void{
  var image:URLRequest = new URLRequest ("http://www.blabla.com/images/"+getDayOfYear(new Date())+".jpg");
  imageLoader.load(image);
  addChild (imageLoader);
}
0
mfa 27 Фев 2014 в 02:08
У меня такая ошибка: Erreur d'ouverture de l'URL 'cocogeek.fr/downloads/ null.jpg 'Ошибка № 2044: IOErrorEvent non pris en charge: text = Ошибка № 2036: Плата не прошла.
 – 
user2421975
27 Фев 2014 в 00:56
Кстати, cocogeek.fr/downloads/ = blabla.com/images/ (который был примером)
 – 
user2421975
27 Фев 2014 в 01:18
Строка ссылки зависит от вас. Просто введите "(getDayOfYear (my_date) as String)" там, где вам нужно число.
 – 
mfa
27 Фев 2014 в 01:20
Простите, я не понимаю. На данный момент, с кодом, который вы мне дали, и моим "1.jpg" на сервере, у меня есть такая ошибка: URL 'cocogeek.fr/downloads/null.jpg'; Ошибка №2044: не понимаю почему. В очередной раз благодарим за помощь !
 – 
user2421975
27 Фев 2014 в 01:33
Попробуйте вместо этого: (getDayOfYear (new Date ()) as String)
 – 
mfa
27 Фев 2014 в 01:36