home > March 2007
myAry.push()
March 28, 2007
よくサンプルデータなどにでてくる関数push()。これは配列の末尾に指定された要素を追加します。追加する要素は「,」で区切って複数列記できます。また、pop()は配列の末期の要素を取り出します。
‥配列が、[F1,F2,F3,F4,F5]になる。
myAry = [ "F1","F2","F3","F4"];//配列定義
myAry.push("F5");
trace(myAry);
‥
Tweet
Flashからフラウザを閉じる
March 27, 2007
this.btn_close.onPress = function(){
getURL("javascript:window.close()");
}
Flash MX2004以前であれば、これでだけでいけますが、Flash8で書き出すとこれだけではうまくブラウザは閉じてくません。ブラウザを閉じるには書き出したhtmlのソースを変更する必要があります。
allowScriptAccess="sameDomain"
↓
allowScriptAccess="always"
こう変更すれば閉じるようになります。かなり悩んで調べつくしたんですがなかなか載ってないですね。
Tweet
Flashに読み込んだ画像の色合い
March 23, 2007
なんかFlashに画像を読み込むと、色合いが淡くなってしまう現象がおきます。作成環境としては、Mac G5でFlashのバージョンが8になってくらいからだと思います。解決策としては、Flashのバージョンを5に落としてから画像を読み込みなおすと色合いが元にもどりました。かなり面倒くさい方法なので、誰かいい方法をご存知ではないでしょうか?教えてください。
Tweet
flvのストリーミング再生/停止/一時停止
March 22, 2007
読み込み設定
var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);
stream_ns.Play("sample.flv");
読み込みファイル設定
this.myvideo.attachVideo(stream_ns); stream_ns.play("mov_sample.flv");
再生/ストップ/一時停止する場合
stream_ns.play("sample.flv"); or stream_ns.close(); or stream_ns.pause();
○ play()
外部オーディオファイルまたはビデオファイル (FLV) の再生を開始します。
○ close()
ストリーム上のすべてのデータの再生を停止し、time プロパティを 0 に設定して、他のユーザーがストリームにアクセスできるようにします。
○ pause()
ビデオストリームの再生を一時停止します。ビデオが既に一時停止している場合は、このメソッドを呼び出しても何も実行されません。
【追記】
pause()で一時停止したあとは、 pause()で再生になる。
【追記】
// サウンドコントロールの対象にするMovieClipをmy_mcとした場合
var my_sound:Sound = new Sound(my_mc);
my_mc.attachAudio(netStream);
my_sound.setVolume(0); // サウンドoff
trace(my_sound.getVolume()); // 確認用
Tweet
Apolloついに!
ついにAdobe Apolloのα版がダウンロード開始しました!
Adobe Apolloでダウンロードできます。
Apollo:Applications:Samplesでサンプルファイルなどがダウンロードできます。
Apolloとは、Adobeが開発しているプロジェクトで、Flash向けに書かれたアプリケーションがブラウザがなくても動かせるようになり、ネットに接続していない時にもFlashアプリケーションを動かせるようです。今のところ、ビジネスでどう作用するのかは分かりませんが、期待はできそうです。
Tweet
Tweenアニメーションの種類
March 21, 2007
あまり僕はTweenは使わなかったほうなのですが、最近のサンプルはこればっかり使ってるじゃないですか。さすがに勉強しないとまずい感じになってきました。
クラスTweenのease種類ですが、これが結構あるんですね。
Animation Types
参考例
Fuse Kitのfuse2.1.3をダウンロードして、ルートにmyMCという名前のMCを作って、さらにその中にobj1、obj2という名のMCをつくる。そして、obj1の_yを3にeaseInOutExpoして、その後にobj2の_alphaをeaseInOutExpoする。
import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup(Shortcuts, PennerEasing, Fuse, FuseFMP);
var fuse:Fuse = new Fuse();
fuse.push([
{target: myMC.obj1, _y: 3, seconds: 1, ease: "easeInOutExpo"},
{target: myMC.obj2, _alpha: 100, seconds: 1.5,
ease: "easeInOutExpo"}
]);
fuse.start();
target(ターゲット)を設定する。ここで使える変数は、_alpha,_x,_y,brightOffset(ホワイトアウト)、seconds、ease等があります。
【追記】
ブラー効果 start_Blur_blur: 50, 〜 Blur_blur: 0, X軸のみ:Blur_blurX y軸のみ:Blur_blurY
明度 start_brightOffset: 100, 〜 brightOffset: 0,
詳しくは
http://txton.net/hoehoe/2007/071006015530.html
に載ってます。
【追記】
ただし、Fuseは多用するとかなりPCに負担をかけているようです。動きが遅くなったりします。出来るだけ使用回数を少なくしたほうがいいです。重ねたりするのはもっとダメ。気をつけましょう。
Tweet
Soundの読み込み
March 20, 2007
音源をライブラリーに読み込んで、リンゲージプロパティのActionScriptに書き出しにチェックして名前をbgmとする。
my_sound = new Sound(this);
my_sound.attachSound("bgm");
my_sound.start(0,99);
my_sound.setVolume(50);
Tweet
webcam使ってみました
まだまだWebcamユーザーは少ないと思いますが、いづれPC標準装備になるでしょう。(iMacはもうなってますが‥)ということで勉強しています。
シンボル名がmy_videoの新規ビデオを作って
下記のASを記述すれば表示されます。
表示するだけならいたって簡単です。
var my_video:Video;
var my_cam:Camera = Camera.get();
this.my_video.attachVideo(my_cam);
下のサンプルは、ビデオの上に乗算やスクリーンなどのフィルターをかけています。
サンプルデータ
さらに色の差に注目して
こんなこともできます。Webcamでピアノ風に作ったらテルミンみたいな楽器になるんじゃなかな~と思って作たんですが、まだ精度があまいので音を奏でるまでいかないですね。でも、これをつめていけば何かにつかえそう。
Tweet
スクロールバーの色設定
scrollbar-3dlight-color :スクロールバーの左端と上端の色
scrollbar-arrow-color :スクロールバーの矢印の色
scrollbar-base-color :スクロールバーのベースの色
scrollbar-darkshadow-color :スクロールバーの右端と下端の色
scrollbar-face-color :スクロールバーの表面の色
scrollbar-highlight-color :スクロールバーのハイライトの色
scrollbar-shadow-color :スクロールバーの影の色
scrollbar-track-color :スクロールバーの通路の色
<style type="text/css">
<!--
html {
scrollbar-3dlight-color : #FFFFFF;
scrollbar-arrow-color : #CC9933;
scrollbar-base-color : #FFFFFF;
scrollbar-darkshadow-color : #FFFFFF;
scrollbar-highlight-color : #CCCCCC;
scrollbar-shadow-color : #CCCCCC;
scrollbar-track-color : #FFFFFF;
}-->
</style>
Tweet
Flash上でのラインの描き方
March 19, 2007
Flash上でASを使ってラインを描く方法です。
仕事でノイズ波形を作りたかったのですが、ラインの描き方を
度忘れしてしまったので、調べなおしました。
- ラインの太さ,線の色,透明度を指定
- ラインの開始位置を指定
- ラインの最終位置を指定
- 開始位置からコントロールポイントを指定して、ある座標まで曲線を引く
myMC.lineStyle ( 太さ , 線の色 , 透明度 );
myMC.moveTo ( x , y );
myMC.lineTo ( x , y );
曲線の場合
myMC.curveTo ( x1 , y1, x2 , y2 );
x1:コントロールポイントX , x2:最終座標X
y1:コントロールポイントY , y2:最終座標Y
【追記】
また、色を塗りつぶしたい時は
myMC.beginFill ( 線の色 , 透明度 );
~ラインを引く~
myMC.endFill ();
の二つの関数でラインを囲むと、その中の色が変わります。
Tweet
removeMovieClipで完全にMCを消去する方法
March 18, 2007
removeMovieClipで消せるのは、
createEmptyMovieClip
attachMovie
duplidateMovieClip
で生成したMCだけではないらしいです。
自分でステージに配置したMCも消せるみたいです。
ステージ上に配置したMCのインスタンス名をmyMCとすると、
myMC.swapDepths(_root.getNextHighestDepth());
myMC.removeMovieClip();
でいけるみたいです。
ちなみにgetNextHighestDepth()は、現在使用されている最も数値の大きい深度のつぎの値を返します。この値をスクリプトで新規に配置するMCの深度に設定すれば、他のMCと重複せずに1番手前に配置することができます。
Tweet
ドロップシャドウ効果
今度は、ドロップシャドウ効果。
public DropShadowFilter([distance:Number], [angle:Number], [color:Number], [alpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [inner:Boolean], [knockout:Boolean], [hideObject:Boolean])
指定されたパラメータで新しい DropShadowFilter インスタンスを作成します。
パラメータ
distance:Number
シャドウのオフセット距離 (ピクセル単位)。デフォルト値は 4 (浮動小数値) です。
angle:Number
0 ~ 360 で表されるシャドウの角度 (浮動小数値)。デフォルト値は 45 です。
color:Number
シャドウのカラー。16 進数形式 (0xRRGGBB) で指定します。デフォルト値は 0x000000 です。
alpha:Number
シャドウカラーのアルファ透明度の値で、0 ~ 1 の範囲の値を指定できます。たとえば .25 と指定すると、透明度は 25 パーセントになります。デフォルト値は 1 です。
blurX:Number
水平方向のぼかし量です。指定できる値は 0 ~ 255 (浮動小数値) です。デフォルト値は 4 です。2 のべき乗 (2、4、8、16、32 など) は、他の値と比べて速くレンダリングできるよう最適化されます。
blurY:Number
垂直方向のぼかし量です。指定できる値は 0 ~ 255 (浮動小数値) です。デフォルト値は 4 です。2 のべき乗 (2、4、8、16、32 など) は、他の値と比べて速くレンダリングできるよう最適化されます。
strength:Number
インプリントやスプレッドの長さです。値が大きいほど、濃い色がインプリントされるので、シャドウと背景との間のコントラストが強くなります。指定できる値は 0 ~ 255 で、デフォルトは 1 です。
quality:Number
フィルタを適用する回数。0 ~ 15 の範囲の値を指定できます。デフォルト値は 1 で、低品質と等価です。2 は普通の品質、3 は高品質です。
inner:Boolean
影が内側の影であるかどうかを指定します。true の場合は、内部シャドウを示します。デフォルトは false (外側シャドウ) で、オブジェクトの外周にあるシャドウを示します。
knockout:Boolean
ノックアウト効果を適用するかどうかを指定します。true を指定すると、オブジェクトの塗りが透明になり、ドキュメントの背景色が表示されます。デフォルトはfalse で、ノックアウト効果は適用されません。
hideObject:Boolean
オブジェクトが非表示であるかどうかを示します。true を指定すると、オブジェクト自体は描画されず、シャドウだけが表示されます。デフォルト値は false (オブジェクトを表示) です。
(「にゃあぷろじゃくと」参照)
以下参考例
import flash.filters.DropShadowFilter;
var frog1:MovieClip;
var filtersArray1:Array = new Array();
var dropShadowFilter1:DropShadowFilter =
new DropShadowFilter(8, 45, 0x000000, 0.8, 16,
16, 1, 1, false, false, false);
filtersArray1.push(dropShadowFilter1);
frog1.filters = filtersArray1;
Tweet
ブラー効果
Flashでよく使うエフェクトを何点かご紹介。
まずは、ブラー効果(ぼけるエフェクト)です。
BlurFilter コンストラクタ
public BlurFilter([blurX:Number], [blurY:Number], [quality:Number])
指定されたパラメータでフィルタを初期化します。デフォルト値では、ソフトフォーカスのかかったイメージが作成されます。
パラメータ
blurX:Number
水平方向のぼかし量です。0 から 255 の範囲の浮動小数値を指定できます。デフォルト値は 4 です。2 のべき乗 (2、4、8、16、32 など) は、他の値と比べて速くレンダリングできるよう最適化されます。
blurY:Number
垂直方向のぼかし量です。0 から 255 の範囲の浮動小数値を指定できます。デフォルト値は 4 です。2 のべき乗 (2、4、8、16、32 など) は、他の値と比べて速くレンダリングできるよう最適化されます。
quality:Number
フィルタの適用回数です。デフォルト値は 1 で、低品質を示します。値 2 は普通の品質です。さらに、値 3 は高い品質で、ガウスぼかしに近似したものになります。
(「にゃあぷろじゃくと」参照)
以下参考例
// クラス宣言 (パッケージパスつき)
import flash.filters.BlurFilter;
var frog:MovieClip;
// 配列インスタンスの作成
var filtersArray:Array = new Array();
// フィルタインスタンスの作成
var blurFilter:BlurFilter = new BlurFilter(8, 0, 1);
// 配列インスタンスにフィルタインスタンスを格納
filtersArray.push(blurFilter);
// MovieClip.filtersプロパティに配列インスタンスを設定
frog.filters = filtersArray;
Tweet
クリック枠を消す方法
March 17, 2007
ちょっとFLashとは関係ないですが、WinのIEでクリックした後に枠が表示されます。それを消すには下記の onfocus="this.blur()"を入れればOKです。
<a href="URL" onfocus="this.blur()">LINK or IMG</a>
Tweet
ASサンプルサイト「にゃあプロジェクト」
March 14, 2007
かなり豊富なActionScriptのサンプルが掲載されています。
これからは参考にさせて頂きます。
すいませんでした。「ぷろじぇくと」はカタカナに変更しておきました。
Tweet
flvのストリーミング方法
今さらですが、よく忘れるのでflvのストリーミング方法をメモしときます。
ルートにmyvideoという名のMCをつくり、mov_sample.flvというムービーを
用意する。
//FLVストリーミング
var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);
//ループ設定
stream_ns.onStatus = function(infoObject:Object):Void {
if(infoObject.code =="NetStream.Play.Stop"){
stream_ns.play("mov_sample.flv");
}
};
this.myvideo.attachVideo(stream_ns);
stream_ns.play("mov_sample.flv");
キーポイントを打ってムービーとの同期を行うときは
var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);stream_ns.onCuePoint=function(info):Void {
if(info["name"]=="キーポイント1"){
キーポイント1アクション;
}
if(info["name"]=="キーポイント2"){
キーポイント2アクション;
}}
これをループ設定を消して、記入すればキーポイントで
ムービーが同期します。
【追記】
埋め込んだムービーをクリアする方法
・MyVideo.clear();
・MyVideo.attachVideo(null);
ストリームしたムービーを停止する方法
・stream.play("sample.flv");// 再生
・stream.pause(); // 一時停止
・stream.close();// 閉じる
使わないと忘れるので再度メモ。
参考サイトアドレス
http://hima.chu.jp/flash/tips/fcs-video.htm
Tweet
IEにてFlashの高速化
March 12, 2007
<param name="wmode" value="opaque" />
をhtml内のFlashコード部分に記入するだけで、数パーセント
処理スピードが上がります。
Tweet
function関数の設定解除
functionで関数を定義する時に、その設定を解除する時のActionScriptの書き方です。
//Action関数を定義
function Action(){ 〜 }
//Action関数を解除
delete Action;
ボタン設定の場合は
delete box.onRollOver;
delete box.onRollOut;
delete box.onRelease;
になります。
ただ、この方法で設定をきると、再度ボタンに関数設定する際は
もう一度、ボタンの設定をしなおす必要があります。
Tweet
Flickr API
March 11, 2007
前にAPIとFlashとの連携を勉強しようと思って、まずFlickr APIやってみました。
ここでAPI application key を取得する。
それから下記のコードでサムネイルの表示はされたのですが‥
マシーンにかなりの負担がかかって画像が表示されるのに時間がかかってしまいます。
誰か解決方法知りませんか?
import com.xfactorstudio.xml.xpath.*;
api_key = “自分のAPI application keyをコピーする”;
var xml:XML = new XML();
xml.ignoreWhite = false;
selectButton.enabled = false;
var xmlUrlTmp = "http://api.flickr.com/services/rest/?
method=flickr.photos.search&api_key="+api_key+"&tags=";
var num:Number = 1; // 写真の初期番号
//各配列を定義する
var photoUrl:Array = new Array();
var PhotoTitle:Array = new Array();
var PhotoID:Array = new Array();
var PhotoOwner:Array = new Array();
var setnum:Number = 1;
var paperview = 6;//xmlの読み込み
xml.onLoad = function(success:Boolean) {
if(success){
var rootNode = xml.firstChild;
var nextNode = rootNode.firstChild.firstChild;
loadPhoto(); // 写真を読み込む
}
};
/* 写真を読み込む関数 */
function loadPhoto(){
for( num = 1; num <= paperview; num++){
photoUrl[ num ] = "http://static.flickr.com/"+
XPath.selectNodes(xml, "rsp/photos/photo["+num+"]/@server") + "/" +
XPath.selectNodes(xml, "rsp/photos/photo["+num+"]/@id") + "_" +
XPath.selectNodes(xml, "rsp/photos/photo["+num+"]/@secret") + "_s.jpg";
PhotoTitle[ num ] = XPath.selectNodes(xml, "rsp/photos/photo["+num+"]/@title");
PhotoOwner[ num ] = XPath.selectNodes(xml, "rsp/photos/photo["+num+"]/@owner");
PhotoID[ num ] = XPath.selectNodes(xml, "rsp/photos/photo["+num+"]/@id");
_root.loader.duplicateMovieClip( "loader" + num , num);
_root["loader" + num ].titleLabel.text = PhotoTitle[ num ];//サムネイルの配置
_root["loader" + 1 ]._x = 3;_root["loader" + 1 ]._y = 3;
_root["loader" + 2 ]._x = 79;_root["loader" + 2 ]._y = 3;
_root["loader" + 3 ]._x = 3;_root["loader" + 3 ]._y = 79;
_root["loader" + 4 ]._x = 79;_root["loader" + 4 ]._y = 79;
_root["loader" + 5 ]._x = 3;_root["loader" + 5 ]._y = 155;
_root["loader" + 6 ]._x = 79;_root["loader" + 6 ]._y = 155;//サムネイルのロード
_root["loader" + num ].load_img.loadMovie( photoUrl[ num ] );
ThumBtn( _root["loader" + num ] ,num );
}
}//ボタンの設定
loadButton.onRollOver = function(){
this._alpha = 60;
}
loadButton.onRollOut = function(){
this._alpha = 100;
}
loadButton.onRelease = function(){
NoMovieClip(num);
num = 1; // 初期化
var requestUrl = xmlUrlTmp+tagLabel.text;
xml.load(requestUrl);
}
//ボタンアクション
function ThumBtn( mc:MovieClip , ss:Number ){
mc.onRollOver = function(){
_root.loading_txt._alpha = 0;
this._alpha = 60;
}
mc.onRollOut = function(){
_root.loading_txt._alpha = 100;
this._alpha = 100;
}
mc.onRelease = function(){
var urltext:String = "http://www.flickr.com/photos/" +
PhotoOwner[ ss ] + "/" + PhotoID[ ss ] + "/";
getURL(urltext , "_blank");
}
}
function NoMovieClip(num:Number){
for( i = 0; i <= num ; i++ ){
_root["loader" + i ].removeMovieClip();
}
num = 1;
setnum = 1;
updateAfterEvent();
}
【追記】
ちなみにサンプルはこれです。
Tweet
Flash内の簡単なアクセス解析方法
オールFlashで作成したコンテンツ内のアクセスログがほしい場合、
方法はいろいろあるが、一番簡単な方法はloadVariables()を使って、
擬似的に別ページを開いてるかのようにする方法です。
そして、その擬似ページのログをとる方法があります。
記述方法もいたって簡単、
on (release) {
this.loadVariables("log.html","GET");
}
で終わり。
log.htmlのログをとれば大丈夫。
【追記】
小ファイルの頭に入れる場合は、空のMC(access)を作って
this.access.loadVariables("log.html","GET");
を一番初めの_rootに記載しておけば大丈夫。
Tweet
MovieClipLoader
March 10, 2007
外部ファイルを読み込む時の設定。swf、jpeg、png、gifが読み込める。
ちなみにpng、gifはFlash8から読み込めるようになりました。
objMCLoader = new MovieClipLoader ();
myListener = new Object ();
// 通知を受け取るオブジェクトを登録
objMCLoader.addListener (myListener);
// 読み込みを開始できたとき
myListener.onLoadStart = function (target_mc) {
_root.loading.gotoAndStop (2);
}
// 読み込みに失敗したとき
myListener.onLoadError = function (target_mc) {
_root.loading.gotoAndStop (3);
};
// 読み込み中呼び出される
myListener.onLoadProgress = function (load, loadedBytes, totalBytes) {
// パーセントの計算
percent = Math.floor (loadedBytes / totalBytes * 100);
};
// 読み込み完了
myListener.onLoadComplete = function (target_mc) {
_root.loading.gotoAndStop (1);
};
// 読み込み完了後の初期化処理
myListener.onLoadInit = function (target_mc) {};
//実際に読み込む
objMCLoader.loadClip('intro.swf', _root.load);
※「target_mc」部部に読み替えるMovieClip名を記入。
Tweet
Mobile Flash
March 09, 2007
携帯の待受けFlashについてのメモ。
_root = 「/」 this =特になにもしないか「""」
_parent = 「../」 で、HTML のパスの書き方に似ています。
以下がソースです。
■ルート部分に下記を
/*日時の取得*/
hh = fscommand2("GetTimeHours"); //時の取得
mm = fscommand2("GetTimeMinutes"); //分の取得
ss = fscommand2("GetTimeSeconds"); //秒の取得
wday.num = fscommand2("GetDateWeekday");//週/*1の位と10の位を分割 スクリプト[B1]*/
if(hh<=9){
hour1.num = 0;
hour2.num = substring(hh, 1, 1);
}else{
hour1.num = substring(hh, 1, 1);
hour2.num = substring(hh, 2, 1);
}
if(mm<=9){
min1.num = 0;
min2.num = substring(mm, 1, 1);
}else{
min1.num = substring(mm, 1, 1);
min2.num = substring(mm, 2, 1);
}
if(ss<=9){
sec1.num = 0;
sec2.num = substring(ss, 1, 1);
}else{
sec1.num = substring(ss, 1, 1);
sec2.num = substring(ss, 2, 1);
}
■文字の入ったMC内に以下のスクリプトを記入する。
stop();
switch (num) {
case "0" :
gotoAndPlay(10);
break;
~
case "9" :
gotoAndPlay(9);
break;
}
Tweet
Fuse Kit
Fuseは、かなり便利なアニメーションクラスのパッケージみたいなもので、サイトからDLして下記の設定をすれば使えます。(Mac仕様)
1.プレビュー設定のActionScript2.0の設定ボタンを押して、DLしたFuseを設定する。
2.環境設定ののActionScript2.0の設定ボタンを押して、DLしたFuseを設定する。
Fuseサイトはこちら↓
http://www.mosessupposes.com/Fuse/
ちなみにActionScriptは
import mx.transitions.Tween;
import mx.transitions.easing.*;
こんな感じで書くみたいです。
Tweet
ランダム配列
//ランダム配列
for( k = 1; k <= client_cont ; k++){
this.client_array[ k ] = k;
}
xShuffleArray(client_array);//ランダム配列実行
function xShuffleArray(l_array) {
var i = l_array.length;
while ( i--) {
var j = Math.floor(Math.random()*i +1 );//ランダムなインデックスを計算
var t = l_array[i];
l_array[i] = l_array[j];
l_array[j] = t;
}}
まず、順番どおりの配列を作成してから
要素をランダムに入れ直す方法です。
Tweet
Flashのフルスクリーン設定
function onResize(){こんな関数を設定する。
//拡大設定
w = this.bg._width;
h = this.bg._height;
scale_w = stageCtrl.width / w * 100;
scale_h = stageCtrl.height / h * 100;
scale = Math.max(scale_w, scale_h);//大きい比率を検出
this._xscale = this._yscale = scale;
//座標設定
w_shift = stageCtrl.width / 2 - w / 2 * scale / 100;
h_shift = stageCtrl.height / 2 - h / 2 * scale / 100;
this._x = w_shift;
this._y = h_shift;
}
そこでもう一つ需要な事は、クオリティを"high"に
_quality = “high”;
して、画像にスムージングをかける。
これで、画像が拡大されてもガタガタになりません。
こまい事ですが、すぐに忘れるのでメモ。
Tweet
New Blog Start
March 02, 2007
あたらしいBlogを立ち上げました。
Flashのいろいろ気になった情報を随時更新していこうと思っています。
Tweet