0

こんにちは 、フラッシュ CS6 と as3 を使用して現在の日付と時刻をアラビア語形式で表示できますか

var now:Date=new Date()
    this["st_rep"+c]["date"].text=now.toDateString()
            this["st_rep"+c]["time"].text=now.toTimeString().slice(0,8)

前もって感謝します

4

4 に答える 4

0

アラビア数字の素敵な解決策:)。次のように、より単純なバージョンの関数を書くことができます。

function convert_arabic(str:String)
{
    var eng_num = ["0","1","2","3","4","5","6","7","8","9"];
    var ara_num = ["۰","۱","۲","۳","٤","٥","٦","۷","۸","۹"];

    for(var f:int = 0; f < eng_num.length; f++)
        str = str.replace(new RegExp(eng_num[f], "g"), ara_num[f]);

    return str;
}

よろしく、

于 2013-07-22T11:24:21.253 に答える
0

それを行う魔法の方法はありません。フォーマッタ関数を作成する必要があります。このようなもの:

var now:Date = new Date()

trace(formatDate(now.toDateString()));

function formatDate(dateStr:String)
{
    var dateParts:Array = dateStr.split(" ");
    var dayName:String = getDayName(dateParts[0]);
    var monthName:String = getMonthName(dateParts[1]);
    var day:String = dateParts[2];
    var year:String = dateParts[3];

    return year + " " + monthName + " " + day + " " + dayName;
}

function getMonthName(month:String):String
{
    switch (month)
    {
        case "Jan": return "يناير";
        case "Feb": return "فبراير";
        case "Mar": return "مارس";
        case "Apr": return "إبريل";
        case "May": return "مايو";
        case "Jun": return "يونيو";
        case "Jul": return "يوليو";
        case "Aug": return "أغسطس";
        case "Sep": return "سبتمبر";
        case "Oct": return "أكتوبر";
        case "Nov": return "نوفمبر";
        case "Dec": return "ديسمبر";
    }

    return null;
}

function getDayName(day:String):String
{
    switch (day)
    {
        case "Sat": return "السبت";
        case "Sun": return "الأحد";
        case "Mon": return "الإثنين";
        case "Tue": return "الثلاثاء";
        case "Wed": return "الأربعاء";
        case "Thu": return "الخميس";
        case "Fri": return "الجمعة";
    }

    return null;
}

私が知っている限り、数字をフラッシュからアラビア語で表示することはできないことに注意してください。数字をアラビア語で表示する必要がある場合は、ライブラリで 10 フレームのムービークリップを作成し、各フレームに 1 つのアラビア数字の画像を保持し、各アラビア数字に従ってライブラリからクリップを添付するフォーマッタ関数を作成できます。

于 2013-07-17T14:33:37.530 に答える
0

Flash Player 10.1 では、flash.globalization パッケージの一部として DateTimeFormatter が追加されました。それは少なくとも部分的にあなたを助けるはずです.

import flash.globalization.DateTimeFormatter;

var d:Date = new Date();
// The locale for Jordan is "ar-JO"
var dtf:DateTimeFormatter = new DateTimeFormatter("ar-JO", DateTimeStyle.LONG, DateTimeStyle.LONG);
trace(dtf.format(d));

// Output on a PC running an English version of Windows:
// 11 آب, 2013 01:57:06 م

TLF テキストフィールドを使用すると、右から左へのテキストを取得できます。ただし、TLF は Flash Pro の現在のバージョン (Flash Pro CC 1.0) から削除されており、代替品があるかどうか、またその時期が不明であることに注意してください。

于 2013-08-11T18:05:31.793 に答える