トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     AS3で isDown() が無くなって・・・
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
せいぞう
Åê¹ÆNo.39240
投稿日時: 2008-6-21 22:51
常連
居住地: 江戸川区の某所
投稿: 125
使用環境:
Flash CS5.5
Windows8 (64Bit)
Pentium Core i7
Memory 8GB
AS3で isDown() が無くなって・・・
いつもお世話になっております。

AS2 では [Shift]+[Esc]+[↑] のような条件も isDown()を使って識別できました。(下記)
  //ActionScript 2.0
  onClipEvent(keyDown){
    if(Key.getCode()==Key.UP && Key.isDown(27) && Key.isDown(16)){
      trace("↑ と Shift と Esc ");
    }
  }

しかし、AS3で isDown() が無くなり、同じ動作をどうやって実現しようかと困ってしまいました。
[Shift]+[↑](下記コード)は出来たのですが、[Shift]+[Esc]+[↑]となるとちょっと困ってしまいます。
  //ActionScript 3.0
  stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);
  function xKeyDown(eventObject:KeyboardEvent):void {
    if(eventObject.shiftKey && eventObject.keyCode==38 ){
      trace(" Shift と ↑");
    }
  }

なにかいいコーディング方法があればご教授頂けませんでしょうか。
よろしくお願いします。m(_ _)m


----------------
□NAME : せいぞう
□URL : http://www.5th-trend.com/

ニノミヤ カズノリ
Åê¹ÆNo.39248
投稿日時: 2008-6-22 15:23
職人
居住地: 東京
投稿: 430
使用環境:
CS4
.4.11, .5.7
XP Pro(sp3)
Flash Player 10,0,22,87,
AIR 1.5.1,
IE 5.5 & 6 & 7 & 8,
Firefox 2.0.0.20 & 3.0.11 & 3.5,
Opera 9.64,
Safari 4,
Google Chrome 2.0.172.31,
Netscape 7.1
Re: AS3で isDown() が無くなって・・・
引用:
seizoさんは書きました:
[Shift]+[↑](下記コード)は出来たのですが、[Shift]+[Esc]+[↑]となるとちょっと困ってしまいます。
  //ActionScript 3.0
  stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);
  function xKeyDown(eventObject:KeyboardEvent):void {
    if(eventObject.shiftKey && eventObject.keyCode==38 ){
      trace(" Shift と ↑");
    }
  }

押されたキーコードを保持してあげれば出来ると思います
var keysDown:Array = [];

stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, xKeyUp);

function xKeyDown(eventObject:KeyboardEvent):void
{
	keysDown[eventObject.keyCode] = true;
	if (eventObject.shiftKey && keysDown[Keyboard.UP] && keysDown[Keyboard.ESCAPE])
	{
		trace(" Shift と ↑ と ESC ");
	}
}

function xKeyUp(eventObject:KeyboardEvent):void
{
	keysDown[eventObject.keyCode] = false;
}

【参考】KeyboardEvent - blog.seyself.com
【Tips】Key.isDown in AS3 (複数取得できるかは分かりません)
せいぞう
Åê¹ÆNo.39249
投稿日時: 2008-6-22 15:35
常連
居住地: 江戸川区の某所
投稿: 125
使用環境:
Flash CS5.5
Windows8 (64Bit)
Pentium Core i7
Memory 8GB
Re: AS3で isDown() が無くなって・・・
押されたキーコードを保持してあげれば出来ると思います。

なるほどーです。
手元でも動作を確認させて頂きました。
お陰様で、壁を乗り越えられました。
ありがとうございます。
早速、利用させていただきます。m(_ _)m


----------------
□NAME : せいぞう
□URL : http://www.5th-trend.com/

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops