現在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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonでのアニメーション 1 2023/06/01 15:58
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- 仕事術・業務効率化 ミステリーショッパー(MS)は必要? 2 2023/01/23 08:20
- 英語 この英文の意味 6 2023/07/14 17:56
- 画像編集・動画編集・音楽編集 Clipchampの編集済ファイルの収め方を教えて下さい。 1 2023/05/18 16:23
- アニメ 歴代ガンダム作品のガンダムの定義とは?初代→連邦軍の最新鋭機体・ガンダムダブルオー→GNドライブ搭載 2 2023/05/31 03:41
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
- その他(OS) WindowsとMS-DOSの違いって何ですか? 5 2022/10/26 02:19
- 据え置き型ゲーム機 ギレンの野望の新作が出た場合、ジオンのMSは何から開発されるのでしょうか? 1 2022/06/16 18:11
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
actionscript3.0,hitTest()
-
flashのクラスで
-
ランダム配置のムービークリッ...
-
見る人のブラウザサイズに合わ...
-
ActionScript
-
photoshopで書いた四角の枠の中...
-
VBScriptでMsgBoxのYesNoボック...
-
VBAで改行の入ったデータの正規...
-
POIでのテキストボックス作成に...
-
IP Address 入力フォームについて
-
変数に256文字以上のテキストを...
-
テキストボックスの中身をリセ...
-
多分探索木の高さを測定する関...
-
Flashでカラーシュミレーション...
-
MCが放物線を描いて移動
-
外部SWF読み込み後の座標指定
-
シンボルの存在意義
-
python ボタンを押すと複数の関...
-
for & duplicateMovieClip & fu...
-
[AS3]自動的に画像が重なってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクションスクリプトでライブ...
-
ブラウザのサイズに合わせてオ...
-
FLASHでの色変更
-
Flash5:2つのGIF画像でシェイ...
-
FLASHでの画像無限スクロール基...
-
FLASHからちいさいウィンドウを...
-
flashで画面いっぱいに拡大でき...
-
FLASH 8 でバケツツールで上手...
-
flashの背景色(stageの色)を...
-
Suzukaで一行ニュースティッカ...
-
プログラミング、アーキテクチ...
-
photoshopで書いた四角の枠の中...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
テキストボックスの中身をリセ...
-
五芒星は、悪魔崇拝とどういう...
-
VBAで改行の入ったデータの正規...
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
テキストボックスにセルの値を...
おすすめ情報