初めて質問をさせて頂きます。AS3については、初めて勉強に取り組んでいます。
質問内容が、大まか過ぎて理解できない場合があるかと思いますが、
何卒、よろしくお願い致します。

アドビーフラッシュCS4のAS3を使って、紙芝居ゲームを作成するのが目的です。
スタートボタンをクリックすると
画面上(背景)にswfデータをフォルダーから特定swfデータを呼び出して、再生し、
次へボタンをクリックすると、「あらすじのセリフ」が背景のswfに表示されている画面上に
表示させて、見た目上同じ次へボタンにて、セリフや背景swfを切り替えていきたいです。

設計の方法から組み立てないといけないと思っていますので、参考になる記事やURLを
教えて頂けませんでしょうか。

当方、色々調べたのですが、タイムライン上にセリフアニメーションを並べて管理した方
がいいのか?、シーン別に作成して、シーンを切り替えて制御した方がいいのか、
よくわかりません。(AS3の概念を理解できていません。すいません)

同じ機能をもったゲームの作り方があれば、きっと何かひらめくかもしれません。
何卒、ご指導のほど、よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんにちは



参考になるか分かりませんが、AS3について色々書かれていますので、一応URLを貼ります。

参考URL:http://gihyo.jp/dev/serial/01/as3
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考になる内容が多くて、大変助かりました。

今後とも、よろしくお願い致します。

お礼日時:2011/04/25 22:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qゲーム中の、英語のセリフについて

少し古いゲームですが、エースコンバット04というゲームの音声を英語に
していると、時々「Die,You SOB !」という台詞が出てきます。
攻略サイトの和訳では「くたばれ!」と訳されていたのですが、「SOB」とは
何かの略なのでしょうか?

分かる方いらっしゃいましたら教えて下さい。

Aベストアンサー

Son of Bitch です。 口にするのも憚られる罵倒語ですので、「SOB」と省略されています。意味は「お前はbitchの息子だ」、、、「bitch」の意味は辞書を見て下さい。生来(せいらい、と読んで下さい)お上品な者ですので、口のするのはおろか書くことも出来ません(爆笑)

QAS3での外部swfの制御

こんにちは。
Flashのコードについて質問させていただきます。

AS3で外部swfを読み込み、制御したいのですが上手くいきません。
ここでいう外部swfはflashで作ったものではなく、aftereffectsでswfで書き出したものです。


var swf:MovieClip;
var loader:Loader = new Loader();
var newSWFRequest:URLRequest = new URLRequest("swfs/" + "test" + ".swf");
loader.load(newSWFRequest);
addChild(loader);

上記コードでswfを表示+再生は出来ます。
更に、swfを停止、再再生、逆再生などしたいのですが、可能でしょうか?
そもそもこのswfにはタイムラインという概念が存在しないので微妙ですが。。。

swf = new MovieClip();
swf .stop();


とか書き足せば、
TypeError: Error #1034: 強制型変換に失敗しました。flash.display::AVM1Movie@231c04a1 を flash.display.MovieClip に変換できません。

が出ます。
よろしくお願いします。

こんにちは。
Flashのコードについて質問させていただきます。

AS3で外部swfを読み込み、制御したいのですが上手くいきません。
ここでいう外部swfはflashで作ったものではなく、aftereffectsでswfで書き出したものです。


var swf:MovieClip;
var loader:Loader = new Loader();
var newSWFRequest:URLRequest = new URLRequest("swfs/" + "test" + ".swf");
loader.load(newSWFRequest);
addChild(loader);

上記コードでswfを表示+再生は出来ます。
更に、swfを停止、再再生、逆再生などしたいのですが、...続きを読む

Aベストアンサー

> そもそもこのswfにはタイムラインという概念が存在しないので

私は After Effects を持っていないので何とも言えませんが
普通,動画作成&編集ソフトで作成した動画は
タイムラインという概念 "しか" 持たないと思いますよ。
つまり,
普通の動画は スクリプト や 座標 や様々なプロパティ という概念が存在せず,
タイムラインだけがあると思います。
(もしくは タイムライン を格納したオブジェクト(MC)があるかです。)

あと,私の勝手な推測ですが,
After Effects で生成される SWF は
ActionScript 2.0 (AVM1エンジン規格)設定で作成された SWF ではないかと思います。

その辺は After Effects のバージョンや設定に依存すると思うので
SWF ファイルを見てみないと何とも言えません。

何とも言えないので
ActionScript 3.0 設定(AVM2エンジン規格) の場合と合わせて
ActionScript 2.0 の場合のスクリプト例も書いておきます。


◎もし After Effects で生成された SWF が
  ActionScript 3.0 設定の SWF であった場合

-----------------------------
var loader:Loader = new Loader();
var newSWFRequest:URLRequest = new URLRequest("swfs/" + "test" + ".swf");
loader.load(newSWFRequest);
addChild(loader);

//loaderにSWFの最初のフレームがロードされたとき関数 onInit を実行
loader.contentLoaderInfo.addEventListener(Event.INIT,onInit);

//関数 onInit の定義
function onInit(e:Event):void {
//loader内のコンテンツの再生を停止
MovieClip(loader.content).stop();
}
-----------------------------



◎もし After Effects で生成された SWF が
  ActionScript 2.0 設定の SWF であった場合

この場合
そのSWFをロードする 親SWF もActionScript 2.0 設定で作成する必要があります。
その場合のスクリプト例↓

-----------------------------
//ムービークリップ「loader」を最高深度に作成
var loader:MovieClip = createEmptyMovieClip("ld",getNextHighestDepth());

//MovieClipLoader「mcl」を作成
var mcl:MovieClipLoader = new MovieClipLoader();

//リスナー用オブジェクト「obj」を作成
var obj:Object = new Object();

//「mcl」のリスナーとして「obj」を登録
mcl.addListener(obj);

//SWFをロード
mcl.loadClip("swfs/" + "test" + ".swf",loader);

//loaderにSWFの最初のフレームがロードされたときに実行
obj.onLoadInit = function():Void{
//loader内の再生を停止
loader.stop();
}
-----------------------------



最低ラインこの辺までやってみて
その結果からこの先の対策を検討し
その後,
この件とは別に「逆再生」などの方法を思考・模索し
もしわからなければその方法を問うべきでしょう。
(段階を跳び越えすぎですよ。)

> そもそもこのswfにはタイムラインという概念が存在しないので

私は After Effects を持っていないので何とも言えませんが
普通,動画作成&編集ソフトで作成した動画は
タイムラインという概念 "しか" 持たないと思いますよ。
つまり,
普通の動画は スクリプト や 座標 や様々なプロパティ という概念が存在せず,
タイムラインだけがあると思います。
(もしくは タイムライン を格納したオブジェクト(MC)があるかです。)

あと,私の勝手な推測ですが,
After Effects で生成される SWF は
ActionScript 2.0 ...続きを読む

Q映画の英語字幕は何故実際しゃべっているセリフと違う事が多いのか?

最近は映画のdvd(洋画)で英語の字幕が表示されると思いますが、
英語の字幕と実際の俳優がしゃべっているセリフと明らかに
違うところが結構あります。何故でしょうか?
1.日本版は日本で字幕を付けているから発音が聞き取りにく
かったのか?
2.字幕は台本のセリフを使っていて実際の俳優はある程度
アドリブでセリフを変えるので違いが出る?
等色々考えてみましたが実際のところは分かりません
何方かお分かりの方がいらっしゃいましたら回答の程宜しくお願いします

Aベストアンサー

概ね、2.が正解です。厳密には、クランクイン前の台本ではなく、日本語字幕作成用に、本国のスタッフが書き起こして送ってきたスクリプトであることが多いはずです。

また、あとから文字原稿を作っていて理由が1.ということもあり得るでしょう。ただし、「日本で付けているから」というよりは、「人間のやることなので間違いも生じる」と言ったほうが正しいんじゃないかと思います。原語原稿を書き起こしているのはネイティヴや、それ相当の人だったりするので。

さらには、字幕は「読ませる」のが目的ですから、あまりにしゃべり方が不明瞭な場合は、より読みやすい文章に書き換えている場合もあります。

Q値が無いと次へボタンを押しても次へ進まなくさせるスクリプト

現在、テキストボックスに値が無いのに
次へボタンを押すと次へ行ってしまいます。
テキストボックスに値が無い時、
次へボタンを押しても次へ進まない
と言うFlash Lite 1.0のスクリプトを書きたいのですが
どうすれば良いのかわかりません。
分かる方がいらっしゃれば教えて下さい。
テキストボックスには
ステージ上で1ボタンを押せば1が表示される
と言う仕様になっています。

Aベストアンサー

「次へボタン」に

---------------------------------
on (release) {
if (テキストフィールドの変数名 ne "") {
// ~次へ行くスクリプトをココに書く~;
}
}
---------------------------------

のように書けば良いと思います。
もしテキストフィールドの変数名(インスタンス名ではありません)が,
「mytext」であったとして,
次へ行くスクリプトが gotiAndStop(2); であったとしたならば,
次のようにしてくださいという意味です。

---------------------------------
on (release) {
if (mytext ne "") {
gotoAndStop(2);
}
}
---------------------------------



「ne」 は,「等しくない文字列」です(ノットイコールのne)。
現在,普通の Flash では ne ではなく != と書きます。
Flash Lite 1.0 では,
文字列の等価演算子と数の等価演算子が違うのです。
テキストフィールド に書き込まれた値は,通常文字列なので,
「""」(文字列なし)のようにして if文判定をします。

「次へボタン」に

---------------------------------
on (release) {
if (テキストフィールドの変数名 ne "") {
// ~次へ行くスクリプトをココに書く~;
}
}
---------------------------------

のように書けば良いと思います。
もしテキストフィールドの変数名(インスタンス名ではありません)が,
「mytext」であったとして,
次へ行くスクリプトが gotiAndStop(2); であったとしたならば,
次のようにしてくださいという意味です。

---------------------------------
on (release) {
...続きを読む

Q映画「卒業」の英語のセリフが知りたい

映画「卒業」(ダスティン・ホフマン主演)の英語のセリフを知りたい
のですが何か手段はないでしょうか?
・DVDの英語字幕付きを探しましたが見つかりませんでした。
(もちろん日本語字幕はあります)
・名作完全セリフ集というシリーズ本がありますが、卒業はありません。
・amazonの海外サイトも見ましたが、当然字幕はなし。

よろしくお願いします。

Aベストアンサー

英語のサイトですが、Awesome Movie Scripts に掲載されていました。
英語のみで、対訳はありません。
http://www.awesomefilm.com/script/graduate.txt

QAS3でSWF単体でデータをXML化したい

FLASH CS5(ActionScript3.0以下AS3)でコンテンツを作成しております。パブリッシュされたSWF単体で、内部データをXML化してテキストデータとして保存できるようにしたいのです。そこで問題になるのが、SWF単体でXML化できるものかです。データは単純なCSV形式なのでPHPなどを連携すればXML化や保存まで可能ですが、SWF単体ではどうでしょうか。SWF単体で保存までできなくてもよいです(というかAS3はテキスト出力の機能は無いようです)。内部でXML化さえしてくれればそれを表示させて手動でテキストエディタなどにコピペして保存します。よろしくお願いいたします。

Aベストアンサー

CSV→XML変換は独自にスクリプトを書く必要はあると思いますが、可能です。

SWF内でデータができあがっているのなら、表示ももちろん可能です。

Q【英語】映画のTED2で「(私は)指輪を外すつもりはないから」というセリフがありました。英語で何

【英語】映画のTED2で「(私は)指輪を外すつもりはないから」というセリフがありました。

英語で何て言ってたか教えてください。

Aベストアンサー

原版見れば!?・・

日本語版では 翻訳した人が変わればニュアンスも変わってるので「(私は)指輪を外すつもりはないから」という台詞も無いかも知れません・・

QAS3でif関数で外部SWFを読み込みたい!

AS3でif関数で外部SWFを読み込みたい!
AS2では下記の記述で動作していたのですが、
----------------------------------------
// もし 変数 result の値が 0 であれば
if (_root.result == "0") {
// flash読み込み
this.loadMovie("main.swf");
// もし 変数 result の値が 1 であれば
} else if (_root.result == "1") {
// flash読み込み
this.loadMovie("1.swf");
}
----------------------------------------
AS3にすると動かなくなってしまいました。

仕組みとしては、【htmlのflashvarsの変数を_rootで拾ってifステートメントで外部SWFを読む】
作りになっています。

参考書を買ってみて条件分岐について調べて試行錯誤してみたもののvarsとかtraceとかAS3で必要ですか?とにかくチンプンカンプンなので、どなたかご教授お願いいたします。。。
宜しくお願い致します。

AS3でif関数で外部SWFを読み込みたい!
AS2では下記の記述で動作していたのですが、
----------------------------------------
// もし 変数 result の値が 0 であれば
if (_root.result == "0") {
// flash読み込み
this.loadMovie("main.swf");
// もし 変数 result の値が 1 であれば
} else if (_root.result == "1") {
// flash読み込み
this.loadMovie("1.swf");
}
----------------------------------------
AS3にすると動かなくなってしまいました。

仕組みとしては、【htmlのflashvarsの変数を_rootで...続きを読む

Aベストアンサー

ActionScript 2.0 以下と 3.0 以上とでは
根本的な考え方や捉え方が変わりますよ。
ムービーの構造も違います。

ですから
単純な ActionScript の変換 などでは対処できませんが,
書かれていらっしゃるスクリプトを
なるべく忠実に単純に ActionScript 3.0 に変換(?) すると次のような感じになります。


----------------------------------------------
//FlashVars 内の変数「result」の値を受け取り 変数「res」に代入
var res:String = loaderInfo.parameters.result;

//Loaderインスタンス「my_ld」を作成
var my_ld:Loader = new Loader();

//リクエストするファイルのURLを入れる変数を宣言
var my_file:URLRequest;

// もし res の値(文字列)が "0" であれば
if (res == "0") {
//リクエストするファイルのURLを「main.swf」にする
my_file = new URLRequest("main.swf");
// もし 変数 res の値(文字列)が "1" であれば
} else if (res == "1") {
//リクエストするファイルのURLを「1.swf」にする
my_file = new URLRequest("1.swf");
}

//Loaderインスタンス「my_ld」にファイルをロード
my_ld.load(my_file);

//Loaderインスタンス「my_ld」をこの階層に配置
this.addChild(my_ld);
----------------------------------------------



なるべく同じになるように変換っぽくはしてますが実際は変換ではありません。

自分の意識で「Loader」なども作成する必要がありますし,
FlashVars 内の変数は 特別な入れ物(loaderInfo.parametersオブジェクト)内に入りますから,
これも FlashVars であることを意識して そのオブジェクトを明示する必要があります。

ActionScript 2.0 以下と 3.0 以上とでは
根本的な考え方や捉え方が変わりますよ。
ムービーの構造も違います。

ですから
単純な ActionScript の変換 などでは対処できませんが,
書かれていらっしゃるスクリプトを
なるべく忠実に単純に ActionScript 3.0 に変換(?) すると次のような感じになります。


----------------------------------------------
//FlashVars 内の変数「result」の値を受け取り 変数「res」に代入
var res:String = loaderInfo.parameters.result;

//Loaderインスタンス「my_ld」を作...続きを読む

Qエルグランドの英語のセリフ

くだらない質問で申し訳ないです。

エルグランドを飛行機のファーストクラスに例えているCMが
ありますが、その英語のセリフを覚えたいのですが、
どなたか書きとめていらっしゃる方おりますでしょうか?

最後にenjoy your trip!的なセリフです

よろしくお願い申し上げます

Aベストアンサー

This is Captain speaking...
Please fasten your seatbelt and relax...
とかだったような・・・。スミマセン。覚えてるところだけ。

Q外部swf(子swf)から、親swfの特定「シーン/フレーム」にリンクをしたい。

アクションスクリプト初心者です。お力をお貸し下さい、どうぞよろしくお願いいたします。

「親swf」ファイルに、「子swf」ファイルを読み込み、「子swf」のリンクボタンから
「親swf」ファイルの指定「シーン/フレーム」にリンクをしたいのですが上手くいきません。

「親」ファイルのタイムライン上に配置した「ムービークリップ(インスタンス名:tv)」を
外部swf「子swf」に差し替えるスクリプトは

----------

loadMovie("子swf", "tv");
stop();

----------

と、記述して上手く動いてますが、

「子swf」のリンクボタンから「親swf」の指定「シーン/フレーム」にリンクさせるにはどの様なスクリプトを書けば良いのか?アドバイスをお願いいたします。

※「親swf」の指定「シーン/フレーム」とは、「子swf」を読み込む前の「シーン/フレーム」
に戻したいのです。

感覚として下記のようなスクリプトを書きましたが、「親swf」の最初のシーン/フレームに
戻ってしまいます。

リンクボタンに記述
----------

on (release) {
loadMovieNum("親swf", 0);
_root.gotoAndPlay("指定シーン",フレーム番号);
}


----------

どなたか詳しい方アドバイスよろしくお願いいたします。

アクションスクリプト初心者です。お力をお貸し下さい、どうぞよろしくお願いいたします。

「親swf」ファイルに、「子swf」ファイルを読み込み、「子swf」のリンクボタンから
「親swf」ファイルの指定「シーン/フレーム」にリンクをしたいのですが上手くいきません。

「親」ファイルのタイムライン上に配置した「ムービークリップ(インスタンス名:tv)」を
外部swf「子swf」に差し替えるスクリプトは

----------

loadMovie("子swf", "tv");
stop();

----------

と、記述して上手く動いてま...続きを読む

Aベストアンサー

ご質問で書かれている最後のスクリプト,

> loadMovieNum("親swf", 0);

これはいったいどういうこと???
という意味不明な疑問が残りますが,
これは無視したものとして回答します。



親swf に 子swf を読み込むとか読み込まないとか以前の話ですが,
ムービークリップクラスの gotoAndPlay() メソッドは,

 ムービークリップ.gotoAndPlay(フレーム数 or フレームラベル)

というシンタックスが決まっていて,
そもそもシーンの指定はできません。


一方,関数である gotoAndPlay() は,

  gotoAndPlay("シーン名", フレーム数)

または,

  gotoAndPlay(フレーム数 or フレームラベル)

のように,2通りの使い方ができて,
上のように,第1引数に シーン名 を指定することができます。


ご質問にあるような場合は,
子→親 のフレーム移動の命令を出しますから,階層を越えています。
このような場合,関数である gotoAndPlay() は一般的に使えません。

一般的でない方法を取ると,
関数である gotoAndPlay() を使えるので次のようにすれば一応はできます。
(例:シーン 2 の フレーム1 に移動させる場合)

----------------------------
on (release) {
tellTarget (_root) {
gotoAndPlay("シーン 2", 1);
}
}
----------------------------

しかし,
tellTarget は Flash Player 5 以降では使用を半禁止にされているスクリプトで,
使用は避けた方が良いです。


というわけで,
階層を越えたシーン移動を gotoAndPlay() メソッドでさせる場合は,
フレームにラベル名を付けて,フレームラベルに gotoAndPlay() するようにしましょう。

この対処法については,
次の URL でも書かれています。

gotoAndPlay/gotoAndStopでシーンの移動ができない
http://www.fumiononaka.com/TechNotes/Flash/FN0205002.html

ご質問で書かれている最後のスクリプト,

> loadMovieNum("親swf", 0);

これはいったいどういうこと???
という意味不明な疑問が残りますが,
これは無視したものとして回答します。



親swf に 子swf を読み込むとか読み込まないとか以前の話ですが,
ムービークリップクラスの gotoAndPlay() メソッドは,

 ムービークリップ.gotoAndPlay(フレーム数 or フレームラベル)

というシンタックスが決まっていて,
そもそもシーンの指定はできません。


一方,関数である gotoAndPlay() ...続きを読む


人気Q&Aランキング

おすすめ情報