【最大10000ポイント】当たる!!質問投稿キャンペーン!

以下のサンプルデータをダウンロードしCS3で開き
http://exyz.cocolog-nifty.com/good_sleep/2007/12 …

新たにムービークリップをmc_panel04を適当なところに
配置し、以下のように他のムービークリップに真似て
書きましたが、まったく動かなくなりました。どうすればよいのでしょうか?

/*---------------------------
ライブラリ読込
---------------------------*/
import mx.utils.Delegate;
import caurina.transitions.Tweener;

/*---------------------------
トゥイーンをさせる関数
---------------------------*/
function tw(_x1:Number,_x2:Number,_x3:Number,_x4:Number_mc1:MovieClip,_mc2:MovieClip,_mc3:MovieClip,_mc4:MovieClip):Void{
Tweener.addTween (_mc1,{_x:_x1,_y:0,time:1,transition:"easelnOutCubic"});
Tweener.addTween (_mc2,{_x:_x2,_y:0,time:1,transition:"easelnOutCubic"});
Tweener.addTween (_mc3,{_x:_x3,_y:0,time:1,transition:"easelnOutCubic"});
Tweener.addTween (_mc4,{_x:_x4,_y:0,time:1,transition:"easelnOutCubic"});
}

/*---------------------------
パネルごとの動作
---------------------------*/
// パネル01
panel01_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,300,330,360panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

// パネル02
panel02_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,20,330,360.panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

// パネル03
panel03_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,20,40,360.panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

panel04_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,20,40,60.panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

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

A 回答 (3件)

>しかしmc_panel04が全く動きません。



>ムービークリップ名が
>mc_panel01なのに
>asスクリプトでは
>panel01_mcとなっている点です。

おそらく、『シンボル名』と『インスタンス名』が混乱してるんですかね。
『ムービークリップ名』と言っているのは、『シンボル名』の事だと思います。
ライブラリの中で、名前として表示されているものです。

『インスタンス名』というのは、ステージ(タイムライン)に配置したあと、そのシンボルをマウスで選択して[プロパティ]に表示される名前です。

たとえば、同じシンボルを複数タイムラインに配置することができます。
もし、ActionScriptから『シンボル名』でアクセスできるとしたら、ActionScriptは『えっ?どのシンボルの事言ってるの?』と混乱してしまいます。
それを避けるために、『シンボル名』ではアクセスできず、配置したシンボルに付けた名前=『インスタンス名』でアクセスします。
※動的にインスタンスを作成する等の、シンボル名でアクセスしなければならない場合もありますが、その必要が出てくるまでとりあえず『シンボル名』でアクセスできないと思って置いてください。

元のプロジェクト等見ていませんが、『シンボル名』=mc_panel01、『インスタンス名』=panel01_mcとなっているんじゃないですかね。

上記の理由だと思うので、新規に作成して配置したムービークリップの『インスタンス名』を、panel04_mcと名前を付ければOKだと思います。
    • good
    • 0
この回答へのお礼

書籍ではわからない、わかりやすい表現で
教えていただいてありがとうございました。
以前からインスタンス名とシンボル名が
なぜあるのか疑問を抱いておりました。
解決しました。
BellBellさん親切に教えていただいて
ありがとうございました。

お礼日時:2010/04/01 23:53

// パネル01


panel01_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,300,330,360【,】panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

// パネル02
panel02_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,20,330,360『,』panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

// パネル03
panel03_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,20,40,360『,』panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

panel04_mc.onRollOver = Delegate.create (this,function():Void{
tw (0,20,40,60『,』panel01_mc,panel02_mc,panel03_mc,panel04_mc);
});

よく見ると、パネル01の部分の【,】個所も抜けてるし
それ以外の『,』部分は、コンマではなくピリオドになってますね。

エラーメッセージ見てます?
エラーが出まくりだと思うんですけど。
せっかく、Flashが行数まで指定してプログラムコードのおかしい個所を教えてくれてるんだから、その情報活用しなきゃ。

この回答への補足

BellBellさんありがとうございます。
おかげさまでコンパイルエラーが消え
元の3つは正常に動きました。
しかしmc_panel04が全く動きません。

大変お手数掛けます。

補足日時:2010/04/01 13:57
    • good
    • 0
この回答へのお礼

ひとつ気になるのが
ムービークリップ名が
mc_panel01なのに
asスクリプトでは
panel01_mcとなっている点です。
それで動いているので
新たのをmc_panel04と名づけましたが
その辺が合点いきません。

お礼日時:2010/04/01 14:10

tw(_x1:Number,_x2:Number,_x3:Number,_x4:Number【 , 】 _mc1:MovieClip,_mc2:MovieCli



ちゃんと全部見たわけではないが、【 】位置に,が抜けている。

この回答への補足

BellBellさんありがとうございます。
確かに抜けていました。ただそれだけではないようです。
既存のムービークリップに真似て名前をmc_panel04 にして
適当な位置に置いただけではだめなんでしょうか?

インスタンス名は入れてませんが、そこでしょうか?

補足日時:2010/04/01 10:43
    • good
    • 0

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


人気Q&Aランキング