先日、こちらである方から、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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- 英語 提示分の"with"の使い方等について 1 2022/08/23 10:40
- マンガ・コミック 漫画の練習方について 1 2022/06/06 19:26
- マンガ・コミック 昔見た劇画タッチの漫画の作者を知りたい 1 2022/04/09 06:58
- マンガ・コミック 縦読み漫画は従来の漫画に比べて表現がかなり制限されますか? 上下のみのコマのために コマからコマにキ 4 2022/12/17 11:40
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- フリーソフト VLCメディアプレイヤーでのコマ送りのホットキー 4 2023/01/04 06:25
- マンガ・コミック こういうコマ割りはありですか? 5 2022/07/31 16:57
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- その他(アニメ・マンガ・特撮) いつまでも終わらないアニメって好きですか? 4 2023/05/11 20:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダウンロードしたデジブックはa...
-
VBAのコンボボックスの年月表示...
-
この曲はなんでしょう?
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
フラッシュゲームアーカイブ2
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashplayerの運用について
-
Windows10重い
-
ロック画面に天気を表示したい
-
ヘッダーデザインをするさい形...
-
大学からの課題をやるのに、Ado...
-
更新されて起きた問題
-
FLASH MX で作成した、flashやA...
-
アメリカから買ったダウンロー...
-
iframe インラインフレームにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホでサイトの画像を長押し→...
-
Form内のselectを連動させるに...
-
arduino プログラムについて
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
私のコンピューター上のファイ...
-
ダウンロードしたデジブックはa...
-
uwscでExcelに自動記入
-
レジリエンス 変換キーが作動し...
-
potplayerについて質問です
-
flash (.swf) を編集したい
-
chrome flash
-
VBAのコンボボックスの年月表示...
-
Flashplayerの運用について
-
iPhoneです。 Adobeフラッシュ...
-
自分でチラシを作りたいです!...
-
adobe flashのページが一回で表...
-
この曲はなんでしょう?
-
ヘッダーデザインをするさい形...
-
Excel VBAについて。
おすすめ情報