問答収集 カテゴリ:JavaScriptプログラミング
現在のスレッド一覧 / 新規に質問を投稿
1 名前:n 日付:2014/02/25(火)07:54:04 ID:BHP+qipqyR5g
質問させて頂きます。

JSで作られたbase64のエンコード部分をFLASH lite1.1で動くように
AS1.0にコンパイルしなくてはなりません。

出来る方、是非、お力をお貸しくださいませ。

具体的には以下をAS1.0に書き換えたいです。


function base64encode(s)
{
  var t = '', p = -6, a = 0, i = 0, v = 0, c;

  while ( (i < s.length) || (p > -6) ) {
    if ( p < 0 ) {
      if ( i < s.length ) {
        c = s.charCodeAt(i++);
        v += 8;
      } else {
        c = 0;
      }
      a = ((a&255)<<8)|(c&255);
      p += 8;
    }
    t += base64list.charAt( ( v > 0 )? (a>>p)&63 : 64 )
    p -= 6;
    v -= 6;
  }
  return t;
}

何卒宜しくお願いします。

(引用元:http://tociyuki.flop.jp/archive/base64.html

2 日付:2014/02/26(水)01:43:46 ID:uqGvQ4UrzKin
こんな感じでしょうか。
-------------------------------------------------------------------
_root.s = 'abcde';

_root.base64list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
_root.t = '';
_root.p = -6;
_root.a = 0;
_root.i = 0;
_root.v = 0;
_root.c;
while ( (i < length(s)) || (p > -6) ) {
if ( p < 0 ) {
if ( i < length(s) ) {
c = ord(substring(s,i+1,1));
i++;
v += 8;
} else {
c = 0;
}
a = ((a%0x100)*0x100)+(c%0x100);
p += 8;
}
t = t add substring(base64list,(( v > 0 )? (a/Math.pow(2,p))%64 : 64)+1,1);
p -= 6;
v -= 6;
}

trace(t); // YWJjZGU=
3 名前:n 日付:2014/02/27(木)07:46:08 ID:BHP+qipqyR5g
早速のご返信ありがとうございます!!

すぐに組み込んで動作確認してみました。
問題なく動作しました。

解析して更に理解を深めます。(条件演算…AS1.0でも使えたのですね…)

本当にありがとうございます!
4 名前:状態変更 日付:2014/02/27(木)07:46:21 ID:BHP+qipqyR5g
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2014/02/25(火)07:54:04
投稿終了日 :
2014/03/06(木)07:52:23
投稿者 :
n
レス総数 :
4
スレッド番号 :
3
MondoCollectionSystem ver.0x00020000 by Hakuhin