forked from: 2009-3-14 wonderfl に任意の画像を埋め込む
Base64 化された画像を wonderfl に埋め込むサンプル
Base64 化すると、画像データは SWF に埋め込まれるので、
Loader を使って外部サーバから画像を読み込むことなく
wonderfl に画像データ (JPG, PNG, GIF, SWF) を
埋め込むことができます。
- 2009-3-14 選んだファイルを Base64 エンコードする
http://wonderfl.kayac.com/code/7759319c71a3b018008d108bfd08425cd72a5c77
- PHP で ファイルを Base64 化するコードの例
http://hikipuro.blog105.fc2.com/blog-entry-249.html
写真素材は、LittleHut さんからお借りしました。
http://littlehut.fem.jp/
// forked from hikipuro's 2009-3-14 wonderfl に任意の画像を埋め込む
package
{
import flash.display.Bitmap;
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.events.Event;
/**
* Base64 化された画像を wonderfl に埋め込むサンプル
*
* Base64 化すると、画像データは SWF に埋め込まれるので、
* Loader を使って外部サーバから画像を読み込むことなく
* wonderfl に画像データ (JPG, PNG, GIF, SWF) を
* 埋め込むことができます。
*
* - 2009-3-14 選んだファイルを Base64 エンコードする
* http://wonderfl.kayac.com/code/7759319c71a3b018008d108bfd08425cd72a5c77
*
*
* - PHP で ファイルを Base64 化するコードの例
* http://hikipuro.blog105.fc2.com/blog-entry-249.html
*
*
* 写真素材は、LittleHut さんからお借りしました。
* http://littlehut.fem.jp/
*/
[ SWF( width = "320" , height = "240" , backgroundColor = "0xFFFFFF" , frameRate = "60" ) ]
public class Main extends Sprite
{
// 画像データ
private const data:String = "R0lGODlhpwDbAPAAAP///wAAACH5BAEAAAAALAAAAACnANsAQAL/hI+py+0Po5y02ouz3rz7D4biSI7BCZ1q4KCqghov4sblLa42vS76ftABbDHiDIhLemo9X/HXlP0YL6TymosOWUEW9Cs0SrdQHheLvjy3Q3aZ7eSC50RZ+o6hy0Pv6gwPqAbG4wSjlXIWqPgx1SA00bgoSaLX1niGdDipmPmH6MXUBZrgKRU5ZkG32YLZamZYZ0gG+/cFJzrIOma1Ottm9/Doy9HkR1abSOV626tMSEqaaDRnphdWKtGZ3BwNjPqtelwsbErNF85N24fNBGr97iyN6Y1bmR4qfEqx1kXYmjvo2g50nLbJEuXGE7Zh4o748/XEXTk5thgCQkavoTyD/8zsoGsXzpY7fNU4KlE46lWQYx0LyRJIEZLJCA4rIswykKCubKFYflPGkRfQSJpapqNpblhRU8/g9LAplNXCo1feydsVEetIm1S7ev0KNqzYsWTLmj2LNm2gmTeHOmKrlhjFuYeS0kPZLRrcuFI1TdPHtSkscUb5gvhrdWnJqYbPeaxYJvGRf/AadyiyMrBMvZXIWb78NErUtkB9Ev58UiIuRoxRo2kN0STKva6D6ZO5TZXoXBNr75zM9G2tg+VoPLtWr7LL0ZL4tTRnRSiQzo/a/cybEOx0toCtJQ8Y0yfsW86/hk65G2McLZK3jlep+ai94OC8T+zOvEINjfkLUv/G7BRtLQgnm3su9MMZf4rdIV1MEUXG3VbGsTSbPYhd2F8J79nmjFvVOaigg+155p8r+XiRXVQn4oXKaOV1o81qGmnYIFacLYPId6cVZgKK15GTYS8kqpNMdBXuV6RsvTG3oG/F9YXhky+u15OTNIbIGwxWbslll15+CWaYYo5JZpm1BWkmaC4utd96afa1k0UIKnjjOBt2mdNGRBoEnEoM3Xlmk7f9hd0bOs755n1FwTYVdHwKiCcyBcIT5WKJ4rbieSN+2N2lzAynqVVzhgcQmlt+aImiIolKnZxlrgFSkysp1Z4bnkI2BaBQQnidp1jy6MMnqgXo657s7XUbMNP/ZVRsnUci+mQwrjYrlZSmEkitBgtmlaNp2QqC7HaLXsulrsYa+l9iZuYJqZ1ikObZonKN9W6ydf5o13Gb5sYYuVi8+4u31fSa0DTGlfpgvtgB2xyO4iraq2KzLalvPm/1429V4RWGq5/CLcYpeUNO2GJYADJZiqjfEZXetIW2afLCcWJ57KbejIzoxiYTCjO36qr6cyp77OgVt8QOCSCRK8fXEFLzyUfqRsOmCJWhbvWY5T3R3lXTKEmNOODHCYZNVcrFTSYrXSq/NFKLeoYq60U6B2xdHssOfHHBodmmcMMd/hJ3h1VSnSm7bbJs9SKtkYoxwsodSPPDkuIaeGoZ//jB79UUGjMwP3BjCOlrhO5j5EwiNl66u4Dvpt1VehuDY7BbK8sryW7TZyO0WafWZ8taLQ4irbCj3K9fl0iDexa6hOpPuD/FGjsOQz+XU495A7379Ye6rE3owVmtHiU6kU6bnR5rPiWBaif/GFqJjz2twd+rPRe0Lvf2Gdh8x6MnsZiaa6X3bS9lmNPft6hkn6jZ54BY2xsDHwjBCEpwghSsoAUviMEManCDHOygBz8IwhCCcE3ew2B+ilc8BpaPUSnJy0IqJ6bxpK8+7nkFqqg1tdVJLXFoO9jgcBZD+nWKaCLrX8QyhppGucpefcIfi9ZlL4GhLhP3KeLxSpg/nP9VqXC4E+COkGgZIE1OTkzjxZGw6Jso/kkgzuqYCjU1FAuxI0kMSxQB1bdAKXrxgfsKjIEuIbtbjQw8+oMeHS91Ruwt0HN/NCIUtfQryYDDbetAo2sIiY8+cmpVYEzi0HoyPh/ajDRpOplq4kWlpYWkjl+C1R/tBrK12RFEq1qCdyAnSEpZ8lwJ+5ZudqkOtgEzgK/bg/P4NizOZcsu/dFi2/DnS2YG5UYcst8beTgxvPHkgn5USBycxkGjwXB/HexhwM7ntE7mUkVzW546fcVCgr1smM0inhkJ+M510uR3c8wnPA2oSiCGSaDVQqCPNOlPev1DaDuEGzWlyEpPJin/Q2gL38OUJhjyqVFI/NpQriZqPgTOqIpxlFrR6qc3ZNpvh4JDKCkRlNDDLONB2DpiWxzlkMgBEWD3cNhCabHSueVUVfjq23EiKjeYgpR2U4qipEYaS2c2ritN7N7x/jaYgHKSdS7JzknrY9DySIwablRPCm/3VfIMKGRILennXkqc1cUMIshsKACFV1GCmlUsVNxVGxFnodjM8GXy7CkkoRRVwOoSSe08iDJ3ltFt0kyrmNQmVgtbNpOmqimu/JomYfk6vgIHJKKkYZZgohzSWWpnXM0XzFarSMVuNHLmmeas0jNawyWWoPoJJUdpVTGeVY1E2VNTcTdBP6BxVo57/2xrb5m2igI26IqerRVoLdu01lFGRsFF6CAbVZdk3fVfEvFZusJq3ZfcRKySzCw1kwbAtvmIiFMdR0bSy41eBld6KcxrC9E7TvJ+KmH+qpkPVzM9/vwpQc2VG13WeNdYLNhoZ4sSaVXZDOlMkbfdNZEhsSnblWXYdKfTqcC44rVnUveTIn7MeLFGTv+ZBnStiu0nO7s5mo7YboOT5x0daC20SleI0ZvEi9nHsYoyJXXWIiudoHbYzXQVvbdVGfhyzGE8TK5IRwxKhIDEPscNl7VKhdFTsUrW2q2Dn2b2MHQ15rpMMrawP1yqV8lWo+2cS8ubNKcxWfiRrMSTR8Qd3tP2bjDkR7V5TS2t2wkHndW66QXRpqsweLrlrNPEtBCu62JM2WnjyFIBYiM98v+qac0NgDe8TytodmOjPVELa1SO/nS43jdb+pwHrvBqLGKzyx5K55EnKzwzZqNVZDiFd8oKffQQP5HjzcC30KZ2MKD1LMwanhOiVrw2PdeyO2yj+aeMvSq4Nm3trQq0RoLFpXNzzZdKknDZwk21sRCZ5ZBBDnNuzfJAszZmBI8ygp1x8SmFelwLqmvfwxYhNBru8BxEfOIUr7jFL47xjGt84xwvCwFQADs="
/**
* コンストラクタ
*/
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
/**
* 初期化メソッド
* @param e
*/
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var display:DisplayObjectContainer;
display = Base64ImageLoader.load(data);
if (display != null)
addChild(display);
}
}
}
/**
* Base64化された画像データを表示可能な形式に変換するクラス
*
* 使い方 :
* var data:String = "Base64化された画像データ";
* var display:DisplayObjectContainer = Base64ImageLoader.load(data);
* if (display != null)
* addChild(display);
*/
class Base64ImageLoader
{
import flash.display.DisplayObjectContainer;
import flash.display.Loader;
import flash.utils.ByteArray;
import mx.utils.Base64Decoder;
static public function load(data:String):DisplayObjectContainer
{
var byteArray:ByteArray;
var base64Decoder:Base64Decoder;
var loader:Loader;
base64Decoder = new Base64Decoder();
base64Decoder.decode(data);
try {
byteArray = base64Decoder.toByteArray();
byteArray.position = 0;
} catch (e:Error) {
return null;
}
loader = new Loader();
loader.loadBytes(byteArray);
return loader;
}
}