Flash制作その2
昨日に引き続き、作成したFlashについて書きたいと思います。
本日は昨日紹介したFlashの、ドラッグ&ドロップ部分のコードを説明します。
差し当たり勘定項目「現金」を、ドラッグした場合の流れを解説します。
まず作成した現金のシンボルに対して、ドラッグのイベントを追加します。
genkin.addEventListener(MouseEvent.MOUSE_DOWN,onStartDrag);
イベントに追加したfunctionは下記の通りです。
まず、ドラッグされたシンボルを取得します。
その後、ドラッグ前の位置を記録し、ドラッグ処理を開始します。
最後にドロップのイベントを追加します。
function onStartDrag(eventObj:Event):void{
kanjou = eventObj.target as MovieClip;
beforeDragX = kanjou.x;
beforeDragY = kanjou.y;
kanjou.startDrag(false);
stage.addEventListener(MouseEvent.MOUSE_UP,onStopDrag);
}
ドロップのイベントへ追加したfunctionは下記の通りです。
まずドラッグ処理を終了します。
その後借り方および貸し方の当たり判定メソッドを実行後、
元の場所へシンボルを移動し、最後にドロップ処理を削除します。
function onStopDrag(eventObj:Event):void{
kanjou.stopDrag();
hitKanjou(kanjou,karikatakoumoku);
hitKanjou(kanjou,kashikatakoumoku);
kanjou.x = beforeDragX;
kanjou.y = beforeDragY;
stage.removeEventListener(MouseEvent.MOUSE_UP,onStopDrag);
}
当たり判定メソッドは下記の通りです。
「hitTestObject」メソッドにより、借り方および貸し方の当たり判定を行います。
ドロップ判定がtrueの場合、ドラッグされたオブジェクトの名前で
実際に表示するテキストを判定します。
function hitKanjou(kanjou:MovieClip,koumoku:TextField):void{
if(koumoku.hitTestObject(kanjou)){
if("genkin" == kanjou.name){
koumoku.text = "現金";
}
if("touza" == kanjou.name){
koumoku.text = "当座預金";
}
if("urikake" == kanjou.name){
koumoku.text = "売掛金";
}
if("kaikake" == kanjou.name){
koumoku.text = "買掛金";
}
if("uriage" == kanjou.name){
koumoku.text = "売上";
}
if("shiire" == kanjou.name){
koumoku.text = "仕入";
}
}
}
若干無理やり組んだ感がありますが・・・。
次回はクリック後の処理を説明します。
本日は昨日紹介したFlashの、ドラッグ&ドロップ部分のコードを説明します。
差し当たり勘定項目「現金」を、ドラッグした場合の流れを解説します。
まず作成した現金のシンボルに対して、ドラッグのイベントを追加します。
genkin.addEventListener(MouseEvent.MOUSE_DOWN,onStartDrag);
イベントに追加したfunctionは下記の通りです。
まず、ドラッグされたシンボルを取得します。
その後、ドラッグ前の位置を記録し、ドラッグ処理を開始します。
最後にドロップのイベントを追加します。
function onStartDrag(eventObj:Event):void{
kanjou = eventObj.target as MovieClip;
beforeDragX = kanjou.x;
beforeDragY = kanjou.y;
kanjou.startDrag(false);
stage.addEventListener(MouseEvent.MOUSE_UP,onStopDrag);
}
ドロップのイベントへ追加したfunctionは下記の通りです。
まずドラッグ処理を終了します。
その後借り方および貸し方の当たり判定メソッドを実行後、
元の場所へシンボルを移動し、最後にドロップ処理を削除します。
function onStopDrag(eventObj:Event):void{
kanjou.stopDrag();
hitKanjou(kanjou,karikatakoumoku);
hitKanjou(kanjou,kashikatakoumoku);
kanjou.x = beforeDragX;
kanjou.y = beforeDragY;
stage.removeEventListener(MouseEvent.MOUSE_UP,onStopDrag);
}
当たり判定メソッドは下記の通りです。
「hitTestObject」メソッドにより、借り方および貸し方の当たり判定を行います。
ドロップ判定がtrueの場合、ドラッグされたオブジェクトの名前で
実際に表示するテキストを判定します。
function hitKanjou(kanjou:MovieClip,koumoku:TextField):void{
if(koumoku.hitTestObject(kanjou)){
if("genkin" == kanjou.name){
koumoku.text = "現金";
}
if("touza" == kanjou.name){
koumoku.text = "当座預金";
}
if("urikake" == kanjou.name){
koumoku.text = "売掛金";
}
if("kaikake" == kanjou.name){
koumoku.text = "買掛金";
}
if("uriage" == kanjou.name){
koumoku.text = "売上";
}
if("shiire" == kanjou.name){
koumoku.text = "仕入";
}
}
}
若干無理やり組んだ感がありますが・・・。
次回はクリック後の処理を説明します。
コメント 0