先日、こちらである方から、Flash Lite1.1では、Flash4以前のように、階層などの概念がないということを教えて頂きました。他のムービークリップを制御する際はtellTargetで指定するらしいのですが、次の実験でどうにも上手くゆきません。
1、新規シンボル(MC)で、4コマ漫画を作成。1コマ目にstop();を設定する。インスタンス名をcounterとし、ステージ(背景)にこれを設置。
2、新規シンボル(ボタン)で、次のスクリプトを記述。
on (release, keyPress "1") {
tellTarget ("counter") {
nextFrame();
}
}
携帯電話のボタン1を押すことによって、4コマ漫画が進む…予定だったのですが、以下の変(文字化け?)なエラーメッセージが…。
ƒ^[ƒQƒbƒg‚ªŒ©‚‚©‚è‚܂¹‚ñ: ƒ^[ƒQƒbƒg="count" ƒx[ƒX="_level0"
パス表記が間違っているのかと思い、
_parent.counterや、/counter、_level0.counterなど色々試してみましたが、やはり先ほどのエラーログが出ます。何か根本的に間違っているのでしょうか。
きちんと、4コマ漫画をコマ送りさせるボタンにするには、どのように表記すればよいのでしょうか。
お詳しい方、ご回答いただけると幸いです。
No.2ベストアンサー
- 回答日時:
> Flash Lite1.1では、Flash4以前のように、
> 階層などの概念がないということを教えて頂きました。
説明の仕方が悪かったですかね。これのことですよね。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2109845
↑教えて!goo ↓OKWave (同じです)
http://okwave.jp/kotaeru.php3?q=2109845
階層の概念はあります。
概念はないどころか階層は今よりもっと強烈なものとした存在していました。
階層,つまりムービークリップ内のタイムラインは Flash 3 からありますので。
http://hotwired.goo.ne.jp/webmonkey/99/02/index2 …
---引用---
また、Flash 3は強力なTellTagetとLoadMovieのコマンドを備えており、
異なるフレームやシーン、ムービーで互いに影響を及ぼし合うことができる
すごいー,強力なTellTagetがあるーぅ。
やっぱり Flash 3 を買わなければ~!
って今となれば何がすごいのかわかりませんが,
つまり階層があるので tellTarget の ( ) 中にターゲットパスが書けるのです。
ちなみに階層が無かった Flash 2 や 1 でも,
グラフィックシンボルの中にタイムラインを持てましたから,
例えば,
蝶が羽ばたくだけのアニメーションをグラフィックシンボル内のタイムラインに作っておいて,
その羽ばたくだけのグラフィックシンボルをモーショントゥイーンさせれば,
蝶が羽ばたきながら飛び回るアニメーションはできていたようです。
ただ,現在と同じく,グラフィックシンボルには階層がありませんので,
tellTarget はできませんでした。
Flash Lite 1.1 までは階層の概念がないのではなくて,
クラスという概念が,ユーザー側に提供されていないのです。
「○○クラス の ××メソッド」 言いかえると 「○○オブジェクト の ××メソッド」
という枠組みがないのです。
「トップレベルクラス」
http://livedocs.macromedia.com/flash/8_jp/main/0 …
それにともなって文法も違います。
日本語 → 自家用車を,静岡まで,運転する。
現在AS風 → myCar.drive("Shizuoka");
FlashLite1.1風 → drive("myCar"," Shizuoka ");
こんな感じでしょうか。
日頃思うのですが,現在AS風は日本語に近いと思います。
Flash Lite 1.1 はどちらかというと英語に近い気がします。
プログラムでは主語(You)がない(命令形)ので,Flash Lite 1.1 では動詞が前にずれて先頭に来ます。
ちなみに Flash 4 触れられていますから一応書いておくと,
Fash 4 では,実際はこうなります。
On (Release, Key: 1)
Begin Tell Target ("/counter")
Go to Next Frame
End Tell Target
End On
Flash 4 以前のアクションは,プログラムというより,
読んでみると英語の自然な語りを聞いているような気がします(私は)。
言葉としては自然でも,プログラム言語となると,動詞が前にあって入れ子入れ子になるので複雑になるのですよ。
やっぱり,オブジェクトが前にある方がずっとスッキリすると思います。
話を元に戻して。
現在ASでは,
gotoAndStop は MovieClip クラス(オブジェクト)の gotoAndStop メソッドと定義されていますから,
MovieClip.gotoAndStop("移動させたいフレーム");
と書けば良いのですが,
Flash Lite1.1 までは (2.0より前は) ,
tellTarget ("MovieClip") {
gotoAndStop("移動させたいフレーム");
}
となります。
ということです。以前例になっていた,
this.gotoAndStop("移動させたいフレーム");
の this の指すものは MovieClip です。
また,_root も MovieClip の1つの形です。
Flash Lite1.1 まではクラスという枠組みがそもそもないので,
これは通用せず,単に
gotoAndStop("フレーム");
と書いてください。ということです。
ただし,階層はあるので,別階層を gotoAndStop させたいときは,
tellTarget で,「ターゲット階層に命令」 をしてください。ということなのです。
ってここまで書いて気づいたのですが
解決されたのですね。
それは良かったです。
---本題ですが------------------------
書かれている通り,
on (release, keyPress "1") {
tellTarget ("counter") {
nextFrame();
}
}
でもうまく行きました。 また,
on (release, keyPress "1") {
tellTarget ("/counter") {
nextFrame();
}
}
でもうまく行きましたよ。
上の場合が,
this.counter.nextFrame();
下の場合が,
_root.counter.nextFrame();
と同じ意味です。
counter というムービークリップは,ボタンと同じ _root にあるのですよね。
ちゃんと存在しているのなら,なぜうまく行かないのかわかりません。
インスタンス名に間違いはないですか?
階層もまちがっていませんか?
ちなみに,うまく行ったという例は
「デバイス選択」で「スタンドアローンプレーヤー」というデバイスを選択して,
アクティブになっている携帯デバイスを選んだ場合です。
前回も書きましたが,携帯というものを持っていないので,
「待ち受け画面」とか「壁紙」とか言われましても,それがどのようなものか理解しておりません。
困ったものだ…・・・。
長くなって申し訳ございません。
結局,書かれている状況で,書かれているスクリプトは正しいとしか言えないと言うことです。
========参考文1==================
~ Flash 4 ヘルプより引用 ~
「ターゲットの指定」より抜粋
ターゲットを指定する構文は、ファイルシステムでフォルダを指定する方法と似ています。
たとえば、" / " を先頭に指定すると、カレントレイヤーのルートにあるムービークリップを表します。
" / " が先頭にない場合、ターゲットはカレントムービークリップを基準にして相対的に指定されます。
次の Tell Target パスでは、前の項で示した7つのタイムラインの例が使用されています。
・ /Jack は、MovieX のメインタイムラインから、ClipA という名前のムービークリップをターゲットとして指定します。
・ ../ は、ClipA というムービークリップから、MovieX のタイムラインをターゲットとして指定します。
・ /Jack/Bert は、ほかのムービークリップから、ClipA1 というムービークリップをターゲットとして指定します。
・ Bert は、ClipAというムービークリップのタイムラインから、ムービークリップ ClipA1 をターゲットとして指定します。
・ ../Ernie は、ClipA1 のタイムラインから、ムービークリップ ClipA2 をターゲットとして指定します。
・ _level1/Smith は、ほかのムービークリップから、MovieY のムービークリップ ClipC をターゲットとして指定します。
ターゲット名が空白の場合は、カレントタイムラインをターゲットとして指定します。
=======参考文2==================
~ Flash Lite 1.x ActionScript の学習 より引用 ~
「変数の使用 」より抜粋
http://livedocs.macromedia.com/flash/8_jp/main/0 …
タイムラインの変数を指定するには、ドット (.) およびコロン (:) と組み合わせたスラッシュシンタックス (/) を使用します。次のドット表記を使用することもできます。
次のコードは、メインタイムラインの car 変数を参照します。
/:car
_root.car
/Explosion:Timer
No.1
- 回答日時:
同じ階層?だと思うので動くような気もしますが・・・
/:counter
でどうでしょうか。
参考サイトはとても役に立ちます。
参考URL:http://www.grkt.com/flash_lite_01.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゲオでカードを作るのは何歳か...
-
ダウンロードしたデジブックはa...
-
Flash Playerのサポートが終了
-
uwscでExcelに自動記入
-
Flash対応のサイトが表示されない
-
Flash playerを有効にするには
-
iPad、iPhoneでフラッシュムー...
-
拡張子「swf」の再生方法について
-
クラスのプロパティ一覧を列挙...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
potplayerについて質問です
-
uwscでExcelに自動記入
-
スマホでサイトの画像を長押し→...
-
ウディタで作ったゲームを公開...
-
flash (.swf) を編集したい
-
アメブロで音声ファイルを貼る方法
-
ダウンロードしたデジブックはa...
-
VBAのコンボボックスの年月表示...
-
iPhoneです。 Adobeフラッシュ...
-
おもしろフラッシュのサイト名...
-
FLASHでゲームを作っていた人は...
-
クラスのプロパティ一覧を列挙...
-
ファイル出現ギミックをつくり...
-
ゲオでカードを作るのは何歳か...
-
拡張子「swf」の再生方法について
-
AS3.0 二次元配列でムービーク...
-
Giam
-
Flash Playerのサポートが終了
-
iframe インラインフレームにつ...
-
キャラクター設定について
おすすめ情報