お世話になります。
Actionscript 3.0で作成しております。
点ABCがあり、点Bをモーショントゥイーンで横に動かしています。
下記のActionScriptで点ABCを結んだ三角形を表示しているのですが、
点Bをモーショントゥイーンで動かしても三角形が変化してくれません。
希望する形としては、点Bが動く度に、三角形ABCを書き直す(?)
Bが移動した形になって欲しいのですがどのようにしたらよいでしょうか?
/////////////////////
import flash.display.Shape;
var shape:Shape=new Shape();
shape.graphics.beginFill(0xFF0000);
//頂点の座標
var vertices:Vector.<Number>=Vector.<Number>([点A.x,点A.y,点B.x,点B.y,点C.x,点C.y]);
shape.graphics.drawTriangles(vertices);
shape.graphics.endFill();
addChild(shape);
/////////////////////
お手数ですが何卒よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
点Aや点Bや点Cは
それぞれ「A_mc」「B_mc」「C_mc」というインスタンス名を付けたムービークリップであったとします。
その場合の "フレームに" 書くスクリプト例です↓。
==============================
import flash.display.Shape;
//---Shapeは先に作成&配置---
var shape:Shape=new Shape();
//(↓状況が不明ですが一応元のままで)
shape.x=200;
shape.y=100;
addChild(shape);
//毎フレーム時間 関数 makeTriangle を実行
addEventListener(Event.ENTER_FRAME,makeTriangle);
//関数 makeTriangle の定義
function makeTriangle(e:Event):void {
//(前のフレーム時間で)描画したものを消す
shape.graphics.clear();
//頂点の座標
var vertices:Vector.<Number> = Vector.<Number>([A_mc.x,A_mc.y,B_mc.x,B_mc.y,C_mc.x,C_mc.y]);
//三角形の赤い塗りを描画
shape.graphics.beginFill(0xFF0000);
shape.graphics.drawTriangles(vertices);
shape.graphics.endFill();
}
==============================
Event.ENTER_FRAME の箇所で
「毎フレーム時間」 と書いていますが
これは 「1フレーム進む時間ごとに毎回」 という意味です。
なお,
スクリプトを書いたタイムラインを "ループ再生させる" 場合
上記のスクリプトが何度も実行されると Shape が重複出没して変になります。
また
何度も同じスクリプトを実行させるのは無駄ですから
仮にフレーム1に上のスクリプトを書いた場合,
最終フレームなどには
==============================
//1フレーム分タイミングを後にずらして
//gotoAndPlay(2) を実行
addEventListener(Event.ENTER_FRAME, function():void {
gotoAndPlay(2);
removeEventListener(Event.ENTER_FRAME, arguments.callee);
}
);
==============================
のようなことを書いて,
フレーム1が何度も表示されないようにする必要があります【図↓】。
(スクリプトを フレーム1 に書くのではなく
ドキュメントクラスを使った場合は
この辺の気配りや細工は要りませんが。)
逆に,
タイムラインを最終フレームなどで止めて "ループ再生させない" 場合
三角形の描画が継続したままだと無駄(CPUなどの無駄遣いになるだけ)ですから
再生を停止させるフレームに次のように書いて
ENTER_FRAME イベントでの関数実行を停止させるようにした方が良いです。
===========================
stop();
//毎フレーム時間 makeTriangle が実行されるのを取消
removeEventListener(Event.ENTER_FRAME,makeTriangle);
===========================
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 写真についてですが、 なぜ、角QOH=60°となるのですか? ・△ABCは正三角形 ・点MはBCの中 3 2022/12/23 10:55
- 数学 ちょっと質問です。 三角形を適当に書いて上から左回りABCと三角形を作るとして、辺ABの中点をEとし 4 2022/07/24 04:05
- 数学 点Oを中心とし、半径が5である円Oがある。この円周上に2点A、B をAB=6となるようにとる。また、 5 2023/08/16 23:32
- 数学 三角形ABCの辺BCを4 : 3に内分する点をTとし、点Tを接点として辺BCに接する円が点Aで直線A 3 2023/02/12 21:03
- 大学・短大 三角形ABCにおいてBCの中点をM、AB>=ACとする。この時AからBCに下ろした垂線とBCとの交点 1 2023/05/10 20:20
- 数学 AB=2,BC=3,∠ABC=60°の三角形がある。 点Aから辺BCに垂線を下ろし辺BCとの交点をD 4 2023/02/02 15:55
- 中学校 直角三角形ABCがあり、 ∠A=90度、 ∠B=60度、∠C=30度の時、 3点、A、B、Cを通る円 2 2022/05/19 18:52
- 数学 下の図のように大中小の3つの円と大円上の点Aが与えられている。 この時、点Bを中円上、点Cを小円上に 2 2023/08/12 23:13
- 数学 半径6の円Kを底面とする半球がある。半球の底面に平行な平面が半球と交わっており、交わりの円Lの半径は 6 2022/06/24 06:34
- 数学 数学の問題の解き方を教えて下さい。 ∠Aが直角の直角三角形ABCで、∠Bの二等分線と辺ACとの交点を 7 2022/05/06 21:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iframe インラインフレームにつ...
-
画像表示をアルファでフェード...
-
ダウンロードしたデジブックはa...
-
pptxをPDFで保存すると、90%サ...
-
スマホでサイトの画像を長押し→...
-
ゲオでカードを作るのは何歳か...
-
アメブロで音声ファイルを貼る方法
-
何種類の値があるかを調べる方...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三角形ABCのBを可変にしたい
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
VB6のスクロールバー付きフレー...
-
【C#】wavファイルの複数同時再生
-
車の運転時のメガネ 縁なし(...
-
VBで動的に作成したパネルの上...
-
cisco catalystのトラブルシュ...
-
C#でDLLファイル読み込みを行う...
-
Flashで右クリックメニューにつ...
-
WEBブラウザの重複起動の禁止
-
WebBrowserでgoogle検索するには?
-
URLを隠す、または別アドレスな...
-
GetPrivateProfileString変値
-
2Dゲーム作成する際、アニメー...
-
C言語 バッファについて。
-
JavaScriptからsetVariable()で...
おすすめ情報