メイン ActionScript 3.0 特設会議室 MovieClipを任意のフレームでstopさせるには? | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
とんび | Åê¹ÆNo.38752 投稿日時: 2008-5-10 14:26 |
Bak@Fla大巨匠 居住地: 佐賀県 杵島郡 投稿: 275
使用環境:
MX CS3 :Flash CS6:CS6 .7.5 |
Re: オーサリングで配置したTextFieldにアクセスしようとするとコンパイルエラー なるほどなるほどー。おかげさまで、この辺りの良く判ってなかった部分が、だいぶ分かってきました。
[ステージのインスタンスを自動宣言]をOFFにして、クラス定義ファイルの方で、TextFieldをimportして変数として_txtを宣言するわけですね。 [ステージのインスタンスを自動宣言]って、フレームスクリプトに以下のコードを書いている、と思っていいのかな…多分。
ただ、[ステージのインスタンスを自動宣言]をOFFにしちゃうと、フレームスクリプトから参照する従来のやりかたは使えなくなっちゃう。 その場合、フレームスクリプトの方で上記の(手動)宣言をすると使えますね。 これらの変数とステージ上に配置したインスタンスとの結びつけ(代入)がスクリプト上はされてないのに使えるのが、なんだか気持ち悪いですけど。以下のスクリプトみたいな感じの。
|
野中文雄 | Åê¹ÆNo.38751 投稿日時: 2008-5-10 4:51 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: オーサリングで配置したTextFieldにアクセスしようとするとコンパイルエラー やはり、エラーは出ないですね。以下のクラスTestを、MovieClipシンボルの[クラス]に設定しました。シンボル内には、TextFieldインスタンス_txtを予め配置してあります。MovieClipインスタンスはタイムラインに予め置いても、コンストラクタを呼出してDisplayObjectContainer.addChild()メソッドで動的に配置しても結果は変わりません。
引用: とんびさんは書きました: [ステージのインスタンスを自動宣言]は、外しておく必要があります。 ActionScript 3.0では、インスタンス名はDisplayObject.nameプロパティの値となる文字列としての意味しかなくなりました。しかし、従来のターゲットパスの考え方と互換性を持たせるため、タイムラインに配置したインスタンスは、Flashが内部的にその名前と同名の変数を宣言して、そこに参照を設定してくれます。 もっとも、これをMovieClipシンボルに設定するクラスでやられてしまうと、シンボル内に配置したインスタンスをプロパティとして宣言できなくなります。そこで、余計なおせっかいを止めさせるのが、このオプションの役目です。 参考: F-site「 MovieClipインスタンスとインスタンス名」 引用: [パブリッシュ設定]-[Flash]タブのActionScript 3.0[設定...]-[ステージのインスタンスを自動宣言]はOFFです。 |
とんび | Åê¹ÆNo.38750 投稿日時: 2008-5-10 3:56 |
Bak@Fla大巨匠 居住地: 佐賀県 杵島郡 投稿: 275
使用環境:
MX CS3 :Flash CS6:CS6 .7.5 |
Re: オーサリングで配置したTextFieldにアクセスしようとするとコンパイルエラー 1. ムービークリップを作って、ステージに配置
2. そのムービークリップ内にTextFieldを配置し(オーサリングで配置、といってたのはコレ。ActionScriptで実行時にaddChildすることとの対比で)、インスタンス名を付ける(例:_txt) 3. ムービークリップのプロパティ(リンケージ)でクラスを指定 4. 指定したクラスの外部asファイルでクラスを定義 5. そのクラスの中から_txtを呼ぶ(例:_txt.text) とういことをやるとエラーが出るのです。 [パブリッシュ設定]-[Flash]タブのActionScript 3.0[設定...]-[ステージのインスタンスを自動宣言]はOFFです。 ぜんぜん気にしたことありませんでしたが、なんじゃこりゃ?ヘルプにも何するオプションかは書いてないようですが。 ONにすると「1046:型が見つからないか、コンパイル時定数ではありません:TextField」ってエラーが出ます。
|
野中文雄 | Åê¹ÆNo.38745 投稿日時: 2008-5-9 22:51 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: オーサリングで配置したTextFieldにアクセスしようとするとコンパイルエラー 再現方法が、わからないのですけど。
クラスを定義した場合で、「オーサリングで配置した」ということは、MovieClipシンボルの[クラス]に設定したということですよね。[パブリッシュ設定]における[Flash]タブの[ActionScript 3.0設定]ダイアログで、[ステージのインスタンスを自動宣言]はどうされていますか? 引用: とんびさんは書きました: |
とんび | Åê¹ÆNo.38743 投稿日時: 2008-5-9 22:22 |
Bak@Fla大巨匠 居住地: 佐賀県 杵島郡 投稿: 275
使用環境:
MX CS3 :Flash CS6:CS6 .7.5 |
Re: オーサリングで配置したTextFieldにアクセスしようとするとコンパイルエラー 新しくスレッドを作ったほうがいいのかもしれませんが…
現在以下のようなスクリプトを書いて、エラーを回避しています。
確かにエラーは出ないのですが、もうちょっといい書き方がありそうな気もします。
|
flashlite | Åê¹ÆNo.38503 投稿日時: 2008-4-21 2:40 |
常連 居住地: 東京 投稿: 69
使用環境:
WinXP Win7 Flash CS3,Flash CS5.0 FlashPlayer FlashLite 1.1、2.0、2.1、3.1(下記) Docomo SO903i SH-08A SoftBank 911T 922SH 945SHG au W61SA S004 Disney DM001SH Willcom Windows Mobile WX341k |
Re: MovieClipを任意のフレームでstopさせるには? ニノミヤ カズノリさん
ありがとうございます。
リンク先も読みました。 教えていただいた方法がひとつの解決方法として十分機能しました。しかも stop以外にも、かなり応用が利きそうだと思いました。
|
永井勝則 | Åê¹ÆNo.38497 投稿日時: 2008-4-20 9:25 |
職人 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: MovieClipを任意のフレームでstopさせるには? 操作対象のムービークリップは、その内部にframe_txtという名前のダイナミックテキストフィールドを持っていて、
[リンケージプロパティ]ダイアログボックスで、 [クラス]フィールドにPlayMCクラスを指定しています。 このテキストフィールド自体は、操作対象のムービークリップの再生ヘッドが、今何フレームにあるかを示すだけのものなので、 質問の内容とは直接関係ないです。
|
とんび | Åê¹ÆNo.38496 投稿日時: 2008-4-20 3:05 |
Bak@Fla大巨匠 居住地: 佐賀県 杵島郡 投稿: 275
使用環境:
MX CS3 :Flash CS6:CS6 .7.5 |
オーサリングで配置したTextFieldにアクセスしようとするとコンパイルエラー 引用:
これ、私も今悩んでいるところで、オーサリングで配置したTextFieldにドットシンタックスでアクセスしようとすると、コンパイルエラーが出てしまいます。 無視して動かすと動くんですが、非常に気持ち悪いです。 とりあえず_txtではなく、this["_txt"]という形でアクセスしていますが、今イチ納得いきません。
|
flashlite | Åê¹ÆNo.38494 投稿日時: 2008-4-20 2:26 |
常連 居住地: 東京 投稿: 69
使用環境:
WinXP Win7 Flash CS3,Flash CS5.0 FlashPlayer FlashLite 1.1、2.0、2.1、3.1(下記) Docomo SO903i SH-08A SoftBank 911T 922SH 945SHG au W61SA S004 Disney DM001SH Willcom Windows Mobile WX341k |
Re: MovieClipを任意のフレームでstopさせるには? 皆様 いろいろな方法をありがとうございます。
それぞれの方法を試してみているところですが 永井勝則さんの地道な方法 をそのまま試したところ 未定義のプロパティ frame_txt へのアクセスです。 というコンパイルエラーが出てしまいました。 勝手にframe_txt:TextFieldを追加してみても同様だったのですが どうすれば再現できるでしょうか
|
野中文雄 | Åê¹ÆNo.38474 投稿日時: 2008-4-18 4:09 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MovieClipを任意のフレームでstopさせるには? もうひとつ、地道な方法です。
MovieClipシンボルの[シンボルプロパティ]で、[クラス]または[基本クラス]にStopperクラスを設定します。インスタンスのstopFrameプロパティに止めたいフレーム番号を代入すれば、そのフレームで止まります。ただし、止まったときに、stopFrameプロパティは0にリセットされます。
引用: flashliteさんは書きました: |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |