
現在hitTestopoint()を使った移動範囲の制限について調べています。
以下のスクリプトにおいて、イラストレーターで作った描画(B)を、円形のオブジェクトms(A,右方向に進んでいく)の移動の制限範囲と使いたいのですが、まず(1)のようになスクリプトを作成すると、正確な描画の範囲ではなく、大まかな範囲(大きな四角)の端で制限が適応されます。(動きが止まります。)この描画はaiデータをライブラリーに読み込んだものをそのままステージに置いただけなので、bitmapにしたらどうなるかと思い、(2)を記述しましたが、こちらも結果は同じでした。どのように考えたらよろしいのでしょうか?お心当たりございましたら、是非お願い致します。
補助画像を添付しております。
*(2)では描画テータにhit3というクラスでリンケージしてます。
(1)
import flash.display.Sprite;
import flash.events.Event;
var ms:Sprite = new Sprite();
ms.graphics.beginFill(0x552277);
ms.graphics.drawCircle(30,30,60);
ms.graphics.endFill();
addChild(ms);
this.addEventListener(Event.ENTER_FRAME,go)
function go(event:Event):void{
ms.x += 5
if (! hito4.hitTestPoint(ms.getBounds(this).right,ms.y, true)) {
ms.x -= 5;
}
if (! hito4.hitTestPoint(ms.getBounds(this).left, ms.y, true)) {
ms.x += 5;
}
if (! hito4.hitTestPoint(ms.x, ms.getBounds(this).bottom, true)) {
ms.y -= 5;
}
if (! hito4.hitTestPoint(ms.x,ms.getBounds(this).top, true)) {
ms.y += 5;
}
}
(2)
import flash.display.Sprite;
import flash.events.Event;
import flash.display.BitmapData;
import flash.display.Bitmap;
var hito_bmp:BitmapData= new hito3(0,0);
var hito_bmp_on:Bitmap= new Bitmap(hito_bmp,PixelSnapping.AUTO,true);
stage.addChild(hito_bmp_on);
hito_bmp_on.x=-150
hito_bmp_on.y=-100
var ms:Sprite = new Sprite();
ms.graphics.beginFill(0x552277);
ms.graphics.drawCircle(30,30,60);
ms.graphics.endFill();
addChild(ms);
this.addEventListener(Event.ENTER_FRAME,go)
function go(event:Event):void{
ms.x += 5
if (!hito_bmp_on.hitTestPoint(ms.getBounds(this).right,ms.y, true)) {
ms.x -= 5;
}
if (!hito_bmp_on.hitTestPoint(ms.getBounds(this).left, ms.y, true)) {
ms.x += 5;
}
if (!hito_bmp_on.hitTestPoint(ms.x, ms.getBounds(this).bottom, true)) {
ms.y -= 5;
}
if (! hito_bmp_on.hitTestPoint(ms.x,ms.getBounds(this).top, true)) {
ms.y += 5;
}
}


No.1ベストアンサー
- 回答日時:
まず大前提として、hitTestPointはシェイプにしか反応できません。
それ以外のものは表示オブジェクトの矩形で判定されます。
ビットマップも同じです。(アルファ透過している部分も画像なのです)
Illustratorから読み込んで作ったシンボルの中身がシェイプでできている、
即ちシンボル(グラフィック・ムービークリップ)やグループ、
描画オブジェクトが含まれていないことをまず確認してみてください。
ご推察のとおりbitmapとしてと読込んでいました。
データ読み込み仕方を変更したところ、できるようになりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
-
Adobe Flash Player
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マウスオーバーで外部ファイル...
-
画面サイズが変わると移動する...
-
経過時間待機
-
VBAユーザーホームテキストボッ...
-
変数に256文字以上のテキストを...
-
VB6.0で、フォームから、別のフ...
-
四乗根を英語で言うと・・・
-
photoshopで書いた四角の枠の中...
-
python ボタンを押すと複数の関...
-
テキストボックスの中身をリセ...
-
【VB.NET】別Formのボタンが押...
-
マウス自体の移動量の取得
-
VBAで改行の入ったデータの正規...
-
UWSCのBTN関数について。
-
テキストボックスにセルの値を...
-
FLASHで脱出ゲームを作る時の、...
-
テキストエリア内の文字列にリ...
-
VBScriptでMsgBoxのYesNoボック...
-
arduino プログラムについて
-
ZWCAD CUIXとLISPの関係について
おすすめ情報