No.1ベストアンサー
- 回答日時:
自動で作るような機能はないでしょう。
自分で作ります。
ジグソーパズルの作り方ですが,
私なら,まず写真か絵をステージ上に用意します。
写真の方が簡単なので,
写真ということで説明を続けます。
まず,
新規ドキュメントを作成して,
任意の名前で任意のフォルダに保存します。
写真の場合は,
Flash の「ファイル」→「読み込み」→「ステージに読み込み」で,
すでにある JPEG などをステージに読み込むことができます↓。
(富士山のつもり)
回回回回回回回回回回回回回回回回回回回回回回回
回回回□□□□□□回回回回回回回回回□回□回回
回□□□□回回回回回回回回回回回回□□□□□回
回回回回回回回回回回回回回回回回回回□□□回回
回回回回回回回回回回■■■回回回回回回回回回回
回回回回回回回回回■□□□■回回回回回回回回回
回回回回回回回回■□□□□□■回回回回回回回回
回回回回回回回■■□■□■□■■回回回回回回回
回回回回回回■回回■回■回■回回■回回回回回回
回回回回回■回回回回回回回回回回回■回回回回回
回回回回■回回回回回回回回回回回回回■回回回回
回回■■回回回回回回回回回回回回回回回■■回回
■■回回回回回回回回回回回回回回回回回回回■■
そのステージ上に読み込まれた写真を選択した状態で,
「修正」→「分解」で写真を分解します。
そして,
その写真の上に新規レイヤーを作成し,
そのレイヤーに写真にぴったりな枠線を線ツールで描きます。
白い部分(□□□)は白い塗りではなくて,
何も無い状態だと思ってください。
枠の線(■■■)だけがある状態です↓。
■■■■■■■■■■■■■■■■■■■■■■■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■□□□□□□□□□□□□□□□□□□□□□■
■■■■■■■■■■■■■■■■■■■■■■■
レイヤーとしては次のようになります。
1
□ レイヤー 筆・・■|●| ←線
□ レイヤー 筆・・■|●| ←写真
それでさらに,
線のレイヤーにジグソーパズルのような線を描いて行きます。
この↓場合6ピースのつもりです(下手ですが)。
■■■■■■■■■■■■■■■■■■■■■■■
■□□□□□□■□□□□□□■□□□□□□□■
■□□□□□□■■■□□□■■□□□□□□□■
■□□□□□□□□■□□□■□□□□□□□□■
■□□□□□□■■■□□□■■□□■■■□□■
■□□□□□□■□□□□□□■□□■□■□□■
■■■□□■■■■■■□■■■■■■□■■■■
■□■□□■□■□□■■■□■□□□□□□□■
■□■■■■□■■□□□□□■■■□□□□□■
■□□□□□□□■□□□□□□□■□□□□□■
■□□□□□□■■□□□□□■■■□□□□□■
■□□□□□□■□□□□□□■□□□□□□□■
■■■■■■■■■■■■■■■■■■■■■■■
そのとき,
線隙間が開かないように,線どうしはきっちりつなげてください。
↓良い例 ↓悪い例
■■■■■ ■■■■■
□□■□□ □□□□□
□□■□□ □□■□□
□□■□□ □□■□□
そして,
書いたジグソーパズルのような線を全部選択し,
「編集」→「コピー」,
そして,写真のある下のレイヤーを選択した状態で,
「編集」→「同じ位置にペースト」。
これで写真の上に線が引かれた状態になります。
試しに,左上のピースの部分の写真を選択してみると,
その部分の写真だけが選択できると思います。
↓選択
■■■■■■■■■■■■■■■■■■■■■■■
■回回回回回回■□□□□□□■□□□□□□□■
■回回回回回回■■■□□□■■□□□□□□□■
■回回回回回回回回■□□□■□□□□□□□□■
■回回回回回回■■■□□□■■□□■■■□□■
■回回回回回回■□□□□□□■□□■□■□□■
■■■回回■■■■■■□■■■■■■□■■■■
■□■回回■□■□□■■■□■□□□□□□□■
■□■■■■□■■□□□□□■■■□□□□□■
■□□□□□□□■□□□□□□□■□□□□□■
■□□□□□□■■□□□□□■■■□□□□□■
■□□□□□□■□□□□□□■□□□□□□□■
■■■■■■■■■■■■■■■■■■■■■■■
選択した状態で,
「修正」→「シンボルに変換」でムービークリップに変換します。
ムービークリップに変換するときに「基準点」の位置に注意してください。
基準点は「中央」が良いです。
同じ要領で,
切り分けられたピースを全てムービークリップに変換していきます。
全てムービークリップに変換したら,
写真レイヤーの方の線は不要なので,
線の方のレイヤーをロック&非表示にして,
写真の方のレイヤーの線を消しゴムツールなどで消してください。
1
□ レイヤー 筆×錠■|●| ←線 非表示&ロック
□ レイヤー 筆 ・ ・ ■|●| ←写真 線を消す
Flash は線や面の上に面を描くと,
下の線や面が消えますから,
消しゴムツールを使わず,
1色塗りの大きな四角を写真レイヤーに描いても良いです。
その下の線が消せますから楽に線を消すことができます。
線を消したあとで,
1色塗りの大きな四角を消せば塗りも消えます。
そういう感じでできた各ピースのムービークリップに,
次は "インスタンス名" を付けて行きます。
"インスタンス名" は「アルファベット+0~の連番」という名前が良いです。
この説明では6ピースなので,
「piece0」~「piece5」というインスタンス名をつけることにしておきます。
↓piece0 ↓piece1 ↓piece2
■■■■■■■■■■■■■■■■■■■■■■■
■□□□□□□■□□□□□□■□□□□□□□■
■□□□□□□■■■□□□■■□□□□□□□■
■□□□□□□□□■□□□■□□□□□□□□■
■□□□□□□■■■□□□■■□□■■■□□■
■□□□□□□■□□□□□□■□□■□■□□■
■■■□□■■■■■■□■■■■■■□■■■■
■□■□□■□■□□■■■□■□□□□□□□■
■□■■■■□■■□□□□□■■■□□□□□■
■□□□□□□□■□□□□□□□■□□□□□■
■□□□□□□■■□□□□□■■■□□□□□■
■□□□□□□■□□□□□□■□□□□□□□■
■■■■■■■■■■■■■■■■■■■■■■■
↑piece3 ↑piece4 ↑piece5
そして,さらに1レイヤー追加して,
そのレイヤーにActionScriptを書きます。
1
□ レイヤー 筆 ・ ・ ■|○| ←スクリプトを書く
□ レイヤー 筆×錠■|●| ←線 非表示&ロック
□ レイヤー 筆 ・ ・ ■|●| ←写真(ピース)
スクリプトは次のように書いてください。
-----------------------------------------
// 全ピースに対して一気に動作定義
for (i=0; i<=5; i++) {
// マウスで押したとき
_root["piece"+i].onPress = function() {
// ドラッグ開始
this.startDrag(true);
};
// マウスを放したとき
_root["piece"+i].onRelease = function() {
// ドラッグ終了
this.stopDrag(true);
};
// ドラッグアウトしたとき = マウスを放したときと同じ
_root["piece"+i].onDragOut = _root["piece"+i].onRelease;
}
-----------------------------------------
これで,
「制御」→「ムービープレビュー」してもらうと,
SWFがパブリッシュされて,
その SWF のピースがドラッグできると思います。
この状態で,いちど上書き保存して,
さらに新しい別の名前で保存し直す方が良いです。
現状にいつでも戻れるようにしておきます。
=======================
次に,
ピースが戻る位置までドラッグされたら,
ピタッと戻るべき位置に吸着させる方法を説明します。
写真のあるレイヤーの下に,
新規でレイヤーを作成してください。
1
□ レイヤー 筆 ・ ・ ■|○| ←スクリプト
□ レイヤー 筆×錠■|●| ←線 非表示&ロック
□ レイヤー 筆 ・ ・ ■|●| ←写真(ピース)
□ レイヤー 筆 ・ ・ ■|○| ←新規レイヤー
そして,
写真レイヤーにあるピースを全て選択して「編集」→「コピー」,
そして,
新規で追加したレイヤーを選択し,「編集」→「同じ位置にペースト」。
そして,
上の方の写真(ピース)レイヤーを非表示&ロックします。
1
□ レイヤー 筆 ・ ・ ■|○| ←スクリプト
□ レイヤー 筆×錠■|●| ←線 非表示&ロック
□ レイヤー 筆×錠■|●| ←写真(ピース)非表示&ロック
□ レイヤー 筆 ・ ・ ■|●| ←新規レイヤー
それで,
新規レイヤーの方にコピーしたピースのインスタンス名をすべて変えて行きます。
吸着スポットという意味で,
「spot0」~「spot5」というインスタンス名を付けます。
↓spot0 ↓spot1 ↓spot2
■■■■■■■■■■■■■■■■■■■■■■■
■□□□□□□■□□□□□□■□□□□□□□■
■□□□□□□■■■□□□■■□□□□□□□■
■□□□□□□□□■□□□■□□□□□□□□■
■□□□□□□■■■□□□■■□□■■■□□■
■□□□□□□■□□□□□□■□□■□■□□■
■■■□□■■■■■■□■■■■■■□■■■■
■□■□□■□■□□■■■□■□□□□□□□■
■□■■■■□■■□□□□□■■■□□□□□■
■□□□□□□□■□□□□□□□■□□□□□■
■□□□□□□■■□□□□□■■■□□□□□■
■□□□□□□■□□□□□□■□□□□□□□■
■■■■■■■■■■■■■■■■■■■■■■■
↑spot3 ↑spot4 ↑spot5
インスタンス名をつけましたら,
その「spot0」~「spot5」をすべて選択して,
下のプロパティインスペクタで,全ての色を「アルファ0%」にします。
カラー:[アルファ v] [0% ] v
すべてが透明になりましたら,
そのレイヤーにロックをかけておきます。
1
□ レイヤー 筆 ・ ・ ■|○| ←スクリプト
□ レイヤー 筆 ・ 錠■|●| ←線 ロック
□ レイヤー 筆 ・ ・ ■|●| ←写真(ピース)
□ レイヤー 筆 ・ 錠■|●| ←「spot0」~「spot5」 ロック
そして,
一番上のレイヤーのスクリプトをいったん消して,
次のように変えます。
----------------------------------------
// 全ピースに対して一気に動作定義
for (i=0; i<=5; i++) {
// 各ピースに変数 n とその固有番号をセット
_root["piece"+i].n = i;
// マウスで押したとき
_root["piece"+i].onPress = function() {
// ドラッグ開始
this.startDrag(true);
};
// マウスを放したとき
_root["piece"+i].onRelease = function() {
// ドラッグ終了
this.stopDrag(true);
// スポットとピースの中心点がヒットしていたら
if (_root["spot"+this.n].hitTest(this._x, this._y, true)) {
// スポットに吸着
this._x = _root["spot"+this.n]._x;
this._y = _root["spot"+this.n]._y;
}
};
// ドラッグアウトしたとき = マウスを放したときと同じ
_root["piece"+i].onDragOut = _root["piece"+i].onRelease;
}
----------------------------------------
これで,来るべきところにピースがドラッグされたら,
来るべき位置にぴったり吸着します。
あとは,
「piece0」~「piece5」 を無茶苦茶な場所に配置して,
パブリッシュすれば,
ジグソーパズルの完成となります。
「piece0」~「piece5」
という 6ピース で説明しましたが,
もっともっとピースは増やしてかまいませんし,
1つのピースの形も,ジグシーパズル風でも良いですし,
自分流のピースの形でも良いです。
とにかく自由なのですから,
もし,ジグソーパズルを自動で作るような機能があっても邪魔(無駄)なだけでしょう。
もしそういう機能があっても絶対私はそういう機能を使いませんよ。
Flash とはそういうソフトです。
ありきたりな何処かで見たことのあるような既製品のような物ではなく,
オリジナルな何かを自作するソフトです。
作り方ばかり説明しましたが,
ActionScriptなどはこちらが参考になると思います↓。
「当たり判定について」
http://hakuhin.hp.infoseek.co.jp/main/as/hittest …
この回答へのお礼
お礼日時:2007/03/03 22:22
早速の回答ありがとうございます!
100ピースを手作業で作るのは大変そうですが
自分のオリジナルパズルが作れるとのことでやる気がでてきました!
詳しい作り方まで教えていただき本当にありがとうございます!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アメブロで音声ファイルを貼る方法
-
スマホでサイトの画像を長押し→...
-
uwscでExcelに自動記入
-
ヘッダーデザインをするさい形...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
photoshopで書いた四角の枠の中...
-
【Photoshop】レイヤー効果の境...
-
PlgBltのマスク処理
-
Flashコンテンツにz-indexは効...
-
http://www.bohr.ne.jp/
-
Flashでスタンドアーロン形式で...
-
【Flash】マスクでスポットライ...
-
Flash パズル
-
ある範囲だけでモーショントュ...
-
VBAで改行の入ったデータの正規...
-
VBScriptでMsgBoxのYesNoボック...
-
python ボタンを押すと複数の関...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
else if文の順序を変えることに...
-
別のアプリケーションのテキス...
-
変数に256文字以上のテキストを...
-
VB6.0で、フォームから、別のフ...
-
VB6.0 でメニューを作りたいん...
-
【VB.NET】別Formのボタンが押...
おすすめ情報