• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ターゲットパスを変数に入れて使ってもいいのでしょうか?)

ターゲットパスを変数に入れて使ってもいいのでしょうか?

このQ&Aのポイント
  • ターゲットのMCまでのパスが長くなってしまい、変数に格納して使用する方法について質問しています。
  • 通常は処理をさせたいMCに直接書くべきですが、この場合は事情がありメインタイムラインに書いています。
  • 要するに、変数を使ってターゲットパスを短くすることができるのか、その方法について皆様の意見を聞きたいとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • perse
  • ベストアンサー率74% (113/152)
回答No.1

詳しいことは知りませんがいいと思います。 他にも with (_root.sample1_mc. …略… .sample4_mc){ _x = nXpos; // _xの前に「.」は必要ない _y = nYpos; _alpha = nAlp; _rotation = nRot; } の様にwithを使ったり、 var sPath:MovieClip = _root.sample1_mc. …略… .sample4_mc; として sPath._x = nXpos; sPath._y = nXpos; sPath._alpha = nAlp; sPath._rotation = nRot; とすることもできます。 2つとも「…略…」って日本語が入ってるのでそのままコピペはできません。

undefined
質問者

お礼

カキコ有り難うございます。二つともパスが長いときには重宝しそうな、スマートなやり方ですね。大変勉強になりました。本当に有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ドラッグ中の回転を止めたいのですが…

    ドラッグができて,なおかつクリックすると90度回転するようにするため,サンプル集を見てムービークリップ(sikaku_mc)に 次のようなアクションスクリプト(以下AS)を書きました。 もともと解説にあったのですが,これだとドラッグしている最中も 回転してしまいます。クリックすると回転しても ドラッグしているときは回転しないようにするためにはどうすればいいでしょうか。 ちなみにこのASはムービークリップ(sikaku_mc)の編集画面のタイムラインに書き込んだものです。 function onPress() { this.startDrag(false); var xm:Number = this._xmouse; var ym:Number = this._ymouse; this._x = _root._xmouse; this._y = _root._ymouse; sikaku_mc._x -= xm; sikaku_mc._y -= ym; this.onEnterFrame = mawasu; this.onMouseMove = updateStage; } function updateStage() { updateAfterEvent(); } function mawasu() { this._rotation += 90; } this.onRelease = this.onReleaseOutside=stopDragMe; function stopDragMe() { this.stopDrag(); delete this.onEnterFrame; delete this.onMouseMove; } ご教授よろしくお願いします。

    • ベストアンサー
    • Flash
  • AS3:ルートの変数とムービークリップ内の変数について

    AS3:ルートの変数とムービークリップ内の変数について ルートのタイムラインで設定した変数var RootVarがあるとして、これをあるムービークリップMCからMovieClip(root).RootVarで読み取って、MC内で何か処理をしたときMovieClip(root).RootVar++;とやってもルートのRootVarの値は変わりません。 例えば、 ■ルートのタイムライン1フレームに記述 var RootVar:uint; if(RootVar>=3){ trace("できた!!"); } ■ステージにあるムービークリップMCのタイムライン1フレームに記述 MovieClip(root).RootVar=0; var AddTimer:Timer = new Timer(1000,3); AddTimer.addEventListener(TimerEvent.TIMER,AddNum); AddTimer.start(); function AddNum(eventObject:TimerEvent):void { MovieClip(root).RootVar++; } ルートからムービークリップ、ムービークリップからルートへ変数に値を渡したり受け取ったりはできなのでしょうか? 変数の扱い方が問題なのでしょうか?よろしくお願いします。 環境:AS3、Flash CS4

    • ベストアンサー
    • Flash
  • MCのクリックした部分をゆっくり中央に移動させたい。

    back_mcをサイズ(600,400)のシーン上に配置し、 シーンに下記フレームスクリプトを記入し、 MCのクリックした部分を中央に移動させましたが、 これを緩やかに移動させるにはどのようにすればよいでしょうか? back_mc.onRelease = function () { _root.back_mc._x = _root.back_mc._x +(300 - _root._xmouse); _root.back_mc._y = _root.back_mc._y +(200 - _root._ymouse); }

    • ベストアンサー
    • Flash
  • [actionscript] XMLを使ってスライドショーを作成しましたが・・・

    こんにちは。 FLASHアクションスクリプト初心者です。 XMLを使ってスライドショーを作成した外部SWFを メインのSWFに読み込ませたいのですが、うまくいかなくて困っています。 構成としては、メインとなるSWFファイルがあり、 そこに外部にある各ページのSWFファイルを読み込んでいます。 現在、メインのSWFファイルに読み込ませるページAのSWFファイルを作成ました。 その外部SWFファイルには、こちらのサイト (http://www.oman3d.com/tutorials/flash/slideshow/index.php) を参考にして、XMLを使って読み込んだ画像で スライドショーを作成しました。 この外部SWFファイルをメインのSWFファイルに読み込ませたのですが、 メインSWFをパブリッシュして確認したところ、 画像スライドショーの部分が表示されませんでした。 (テキストやMCなどは表示されます。) 外部SWFのパブリッシュプレビューでは表示されています。 actionscriptは、外部SWFの一フレーム目に記述されています。 ****actionscript**** import mx.transitions.Tween; import mx.transitions.easing.*; var myShowXML = new XML(); myShowXML.ignoreWhite = true; myShowXML.load("slideshow.xml"); myShowXML.onLoad = function() { _root.myWidth = myShowXML.firstChild.attributes.width; _root.myHeight = myShowXML.firstChild.attributes.height; _root.mySpeed = myShowXML.firstChild.attributes.speed; _root.myImages = myShowXML.firstChild.childNodes; _root.myImagesNo = myImages.length; createContainer(); callImages(); }; function createContainer() { _root.createEmptyMovieClip("myContainer_mc", 1); myContainer_mc.lineStyle(5, 0x000000, 100); myContainer_mc.lineTo(_root.myWidth, 0); myContainer_mc.lineTo(_root.myWidth, _root.myHeight); myContainer_mc.lineTo(0, _root.myHeight); myContainer_mc.lineTo(0, 0); myContainer_mc._x = (Stage.width - myContainer_mc._width) / 2; myContainer_mc._y = (Stage.height - myContainer_mc._height) / 2; } function callImages() { _root.myMCL = new MovieClipLoader(); _root.myPreloader = new Object(); _root.myMCL.addListener(_root.myPreloader); _root.myClips_array = []; _root.myPreloader.onLoadComplete = function(target) { _root.myClips_array.push(target); target._alpha = 0; if (_root.myClips_array.length == _root.myImagesNo) { _root.target_mc = -1; moveSlide(); myShowInt = setInterval(moveSlide, (_root.mySpeed * 1000) + 1000); } }; for (i = 0; i < _root.myImagesNo; i++) { temp_url = _root.myImages[i].attributes.url; temp_mc = myContainer_mc.createEmptyMovieClip(i, myContainer_mc.getNextHighestDepth()); _root.myMCL.loadClip(temp_url, temp_mc); } } function moveSlide() { current_mc = _root.myClips_array[_root.target_mc]; new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true); _root.target_mc++; if (_root.target_mc >= _root.myImagesNo) { _root.target_mc = 0; } next_mc = _root.myClips_array[_root.target_mc]; new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true); } 宜しくお願いいたします!

  • フルウィンドウのFlash Firefoxなどでずれる

    http://creator.job-stage.jp/guide/fla_sample/flash_0001.html のサイトを参考にしてフルスクリーンのサイトを作っています。 Firefoxなどで確認したところ、 中央部に表示されず上半分にずれてしまいます。 Firefox用などのスクリプトが必要ですか? //1. ステージ クラスを宣言。 flStage.align = "LT"; Stage.scaleMode = "noScale"; //2. レイアウトの関数を宣言。 function LayOut() { _root.MC_Logo._x = 50; _root.MC_Logo._y = 50; _root.MC_CopyRight._x= Stage.width - _root.MC_CopyRight._width-20; _root.MC_CopyRight._y= Stage.height - 20; _root.MC_main._x = (Stage.width - _root.MC_main._width)/2; _root.MC_main._y = (Stage.height- _root.MC_main._height)/2; } //3. ブラウザーをリサイズした時の設定。 myListener = new Object(); myListener.onResize =function() { LayOut(); break; }; Stage.addListener(myListener); LayOut();

    • ベストアンサー
    • Flash
  • flash as2.0 hitTest()について

    FLASHMXで作業をしています。 mcが壁に当たると反対方向にmcを移動させたいのですが 以下では、うまくいきません。理由がわかりませんし打開策も わかりません。解決策を教えてください。よろしくお願いいたします。 onClipEvent(load){ this._x=100; this._y=380; } onClipEvent(enterFrame){ this._y -=3; if(_root.tama_mc.hitTest(_root.kabe_mc)==true){ this._y +=5; } }

  • classを作ったのに動きません。

    現在classについて勉強中なのですが、自分の書いたスクリプトで実行すると「classを読み込めませんでした」とのエラーが帰ってきます。 何が原因なのか探してみたのですが、いまだにわかりません。 わかる方は教えていただけないでしょうか? ちなみに下に書いてあるスクリプトはclassとそれを動かす新規ファイル「rotation.fla」の1フレーム目に記述したものです。 ステージにはムービークリップ「bar_mc」と「center_mc」が置かれています。 //MyClass01クラス class MyClass01 { var mc:MovieClip; function MyClass01(target:MovieClip) { mc = target; } function circle(x:Number, y:Number, r:Number, d:Number):Void { mc._rotation += d; var rad = mc._rotation * Math.PI / 180; mc._x = x + r * Math.cos(rad); mc._y = y + r * Math.sin(rad); } } rotation.flaの1フレーム目 var barObj:MyClass01 = new MyClass01(bar_mc); bar_mc.onEnterFrame = function() { var x = center_mc._x; var y = center_mc._y; var r = 100; var d = 10; barObj.circle(x, y, r, d); };

    • ベストアンサー
    • Flash
  • スライドバーのアクションスクリプト

    いつも大変お世話になっております。 伸び縮むサイドバーを作っているのですが、伸ばしたまではいいのですが、元の位置に戻すほうがどうもうまくいきません。 以下、途中まで書いたスクリプトです。 ■.recruit_mcがバーの部分になります。 onClipEvent (load) { _root.recruit_mc._x = 859; _root.recruit_mc._y = 272; } onClipEvent (enterFrame) { rec_to_button.onRelease = function() { _root.recruit_mc.onEnterFrame = function() { if (_root.recruit_mc._x>=620) { _root.recruit_mc._x -= 10; } }; }; } -------------------------------------------------------------- if (_root.recruit_mc._x>=620) { _root.recruit_mc._x -= 10; } の箇所で else を使って、逆の場合をいろいろと書いているのですが どうもうまくいきません。 ボタンを押したら859→620まで移動、またボタンを押したら620→859 まで移動するようにするには、あとどう書き加えればいいですか? ご教授よろしくお願いします。

    • ベストアンサー
    • Flash
  • acttionscript2.0から3.0へ。。。(-.-)

    acttionscript2.0から3.0へ。。。(-.-) どなたか、AS2.0で記述されたスクリプトをAS3.0に書き換えていただけないでしょうか? ユーザーのモニター解像度・大きさに合わせてブラウザー内で100%・ フルスクリーンで表示させたい場合、 どういったActionScriptを書けばいいのかと考えて 2.0でのスクリプトは手に入ったのですが。。 すいません、どなたかよろしくお願いいたします。 Stage.align = "LT"; Stage.scaleMode = "noScale"; function LayOut() { _root.MC_Logo._x = 50; _root.MC_Logo._y = 50; _root.MC_CopyRight._x = Stage.width - _root.MC_CopyRight._width- 20; _root.MC_CopyRight._y = Stage.height - 20; _root.MC_main._x = (Stage.width - _root.MC_main._width)/2;// x 座標を中央にスクリプトで計算。 _root.MC_main._y = (Stage.height - _root.MC_main._height )/2;// y 座標を中央にスクリプトで計算。 } myListener = new Object(); myListener.onResize = function() { LayOut(); break; }; Stage.addListener(myListener); LayOut(); stop();

    • ベストアンサー
    • Flash
  • 階層をまたぐ命令について

    Flash CS4 as2.0です。 メインタイムラインの下にムービークリップmc1、flash1、flash2をつくり、mc1の下にさらに ムービークリップmc2を作りまして、メインタイムラインには、var hensu=0;という変数を設定しています。この場合のmc2に書いたスクリプトの動作についてですが、 on(release){ _root.flash1.gotoAndStop("aa"); ・・・(1) _root.flash2.gotoAndStop("bb"); ・・・(2) _root.hensu=1; ・・・(3)        } 上記の(1)と(2)は実行されますが、(3)については実行されません。 記述を(3)、(1)、(2)と変えても同じです。 孫階層から2代上の親階層(メインタイムライン)へのアクセスはできないのでしょうか。