すいません。ちょっとややこしいですが
教えてほしいんのです。
「フラッシュ サンプル」でぐぐった一番最初のページの
フラッシュ宝箱のこのページ(このページは感謝しまくりです)
http://www.condo.fromc.jp/flash/memo/index.html
の
5番目、スライド式メニューと『glid.fla』
3番目、ドラッグ&ドロップでグリッドに吸着『slide.fla』
をいっしょになったものを創りたいのです。
まずは、『slide.fla』をダウンして、
例えば、CONTENT2 の部分に 『glid.fla』を入れたいのです。
ですが、うごきません。
本来のスライドのはするのですが、
『glid.fla』はまったく反応しません。
たしかにどっちもonClipEvent(load){
から始まってるので、これが駄目なんだと思い
slide.flaに
swfを読み込ませばいいんだと勝手に解釈
CONTENT2 にムービークリップ(インスタンス=img)をいれて
そこにonClipEventで『glid.swf』をよみこましました。
onClipEvent (load) {
nMyNum = 2;
nTotal = 4;
nMinX = 60;
nMaxX = 340;
nDest = nMaxX;
nDelay = 5;
//ヒットエリアの設定
this.hitArea = button_mc3;
・・・・
img.loadMovie("glid.swf");←←←
ですが・・swfは読み込むのですが、全く反応しません
ドラッグできない以前にマウスが指マークにすらなりません。
これはナゼなんですか?
FLASHは5しかつかったことなくて、
随分久しぶりにMAXを触ってます。
多分、パスの設定とか
どちらもonClipEvent(load)が2つある事
その辺りだとおもうんですけど・・・
気が付いてやったことは、
this.hitarea=button_mc は 帯の部分だけにしているます。
ほんとに参ってます。
どなたか、よろしくお願い致します。
(多分幼稚な事きいてるんだろうなと思ってます。)
No.1ベストアンサー
- 回答日時:
幼稚なことなどではありません。
難しい問題です ^^;まず、簡単な実験をしてみますと。
赤の丸を描いてボタンシンボルに変換し、「オーバー」のフレームでは、これを青に塗り替えます。
何の変哲もないボタンですから、カーソルを合わせると、赤い丸が青に変わります。
次に、このボタンのインスタンスを更にムービークリップに変換し、ボタンをムービークリップの入れ子にします。
この状態ではボタンは反応しますが、ムービークリップに on(press) アクションを設定すると、ボタンは反応しなくなります。
このボタンはムービークリップの一部でもあるので、親のムービークリップが press や release などのボタンとしての機能を利用している時は、ボタンの上でマウスを操作しても、Flash の内部では親のムービークリップで起きたイベントと見なされます。
ボタンではイベントそのものが起きていないことになりますから、ボタンは全く反応しなくなるというわけです。
ボタンとムービークリップを例にしましたが、ムービークリップ同士でも同じことです。
ムービークリップ CONTENT2 に img を作り、これに glid.swf を読み込むと、glid.swf が持っていたムービークリップやボタンは、全て img の子になります。
img は CONTENT2 の子です。
CONTENT2 に on(press) などのボタンイベントを利用するアクションが書かれていると、CONTENT2 の子になっているムービークリップやボタンではボタンイベントは検出されません。
------------------------------------------------------
Flash 側からイベントが発行されない以上は、親がボタンイベントを使っていても、子の階層で擬似的にイベントを検出できる仕組みを考えなければなりません。
press や release イベントが発生した時にどんなことが起きているかを考えると、これらに代わる処理は何となく浮かんでくると思います。
press は”ムービークリップやボタンがクリックされた時”に起こるものです。
(この先は文章が複雑になるなので、ムービークリップだけで考えます)
つまり、
・マウスのボタンが押される
・ムービークリップにカーソルが重なっている
この2点が条件です。
では、release はどうでしょう。release イベントは、必ず press イベントが起きた後に発生します。
従って
・マウスのボタンが押されて離された時に発生する
・ムービークリップにカーソルが重なっている
となります。
マウスボタンに関しては、ムービークリップの mouseDown や mouseUp イベントで検出できます。
ただ、これらのイベントはムービークリップの上でなくても発生するので、別途、カーソルがムービークリップの上にあるかどうかを判断しなければなりません。
ムービークリップとカーソルが重なっているかどうかは、衝突判定をとる hitTest で何とかなりそうです。
擬似 onPress 処理をスクリプトにしますと、
(↓各行頭に全角のスペースが入っています。コピーする際はご注意ください)
//擬似onPress処理
onClipEvent(mouseDown)
{
//カーソルと重なっていたら、pressイベント発生と見なす
if( this.hitTest( _root._xmouse , _root._ymouse , true ) )
{
/*ここにpressイベント発生時の処理を書く*/
}
}
こんな感じになります。
ところで、ドラッグは release の他に、releaseOutside イベントも利用することがあります。
releaseOutside とは、press と同様にムービークリップの上でマウスのボタンをクリックした後、ムービークリップ外でマウスのボタンが離された時に起こるイベントです。
release はカーソルとムービークリップが重なっていないと発生しませんが、releaseOutside ではカーソルが重なっていなくてもいいのですから、カーソルとの衝突判定をとる必要はありません。
つまり、このどちらかのイベントが起きた時にドラッグを終了するのであれば、
・press イベントが発生した後(ドラッグ中)である
・マウスのボタンが離された
この2点の条件が揃った時に、ドラッグをやめればいいことになります。
そこで、変数(フラグといいます)を1つ用意し、ドラッグを開始した時に、ドラッグ中であるという記録を残します。
ドラッグ中かどうかだけ分かればいいので、値は true と false で充分です。
この変数を見ると、ドラッグ中だったかどうかが分かります。mouseUp イベントが起きた時は、ドラッグ中の場合だけ、ドラッグをやめればいいわけです。
まとめますと、glid.swf のムービークリップに書くスクリプトは、大体、次のようになります。
slide.swf に読み込んだ時に on(press) や on(relase,releaseOutside) は意味をなくしてしまいますので、コメントにしておくといいでしょう。
ドラッグ中かどうかの情報を保持する変数は drag_flg としています。
onClipeEvent(load) の中で、
//ドラッグフラグ
//ドラッグ中true、それ以外はfalse
drag_flg = false;
というように初期化をしてください。
//擬似onPress処理
onClipEvent(mouseDown)
{
//カーソルと重なっていたら、pressイベント発生と見なす
if( this.hitTest( _root._xmouse , _root._ymouse , true ) )
{
//ドラッグ開始
this.startDrag();
//ドラッグ中であることを記録
this.drag_flg = true;
}
}
//擬似onRelease・onReleaseOutside処理
onClipEvent(mouseUp)
{
//ドラッグ中だった時のみ、release・releaseOutsideイベント時と同じ処理を実行
if( this.drag_flg )
{
//ドラッグ終了
this.stopDrag();
//ドラッグフラグをクリア
this.drag_flg = false;
/*ここに、ドラッグ終了時に実行する処理を書く*/
}
}
glid.swf のムービークリップをドラッグはできますが、手のひらカーソルには変わりません。
手のひらカーソルに変わるのはボタンイベントが起きた時だけなので、仕方ありませんね。
どうしてもというのなら、カスタムカーソルのムービークリップを用意し、glid.swf のムービークリップを動かしている時だけ、カーソルを消してカスタムカーソルを表示するといった方法になるかと思います。
長くなってすみませんでした。
不明な点がありましたら、補足してください。
すごい!!!!!!!!!!!!!!!!!!!!!
ここまで解説していただけると
お礼だけでいいのかな?と思ってしまいます。
これまで疑問に思ってた内容も随分クリアになりました。
本当にありがとうございます。
すごすぎる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- その他(AV機器・カメラ) AmazonミューシックHDのハイレゾ曲をflac拡張子で、SDカードに保存したいのですが? 1 2022/09/16 13:23
- その他(プログラミング・Web制作) httpsでsなし削除 2 2022/06/10 08:02
- Chrome(クローム) 最近のGoogle Chromeのデータ読み込みの遅延やエラーって頻発しますか? 2 2023/01/06 22:12
- 国家公務員・地方公務員 公務員試験の数的処理で苦戦しています。 1 2023/01/30 08:56
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- Visual Basic(VBA) VBAでWEBサーバー上に保存されたPDFファイルのリンク有効チェックについて 1 2022/11/11 16:04
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AS3.0 設置した画像を次のラベ...
-
ダウンロードしたデジブックはa...
-
自分でチラシを作りたいです!...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンアクション flash アク...
-
ボタン自身の画像を変える方法
-
flash suzukaで・・・
-
メニュー作りで困っています。
-
ActionScriptでボタンをクリッ...
-
前月表示ですけど
-
FLASHで作ったムービーからのリ...
-
リンクのはり方
-
arduino プログラムについて
-
ボタンの上にカーソルを置いた...
-
FLASHで印刷ができません
-
[Start]を押すと始まるFlas...
-
FLASHナビボタンで、アクション...
-
マウスオーバーで色が薄くなる...
-
画像をボタンにしてクリックする
-
onClipEvent(load)かhitareaの...
-
FLASHバナーにリンクを・・・
-
ActionScript3.0 ボタンを押す...
-
FLASHのボタン操作について・・...
-
FLASHで透明なボタンにリンクを...
おすすめ情報