トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     外部クラスの中のタイムラインへムービークリップを作成するとエラーになる?
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
weedmill
Åê¹ÆNo.50157
投稿日時: 2014-2-9 16:04
新米
居住地: Tokyo
投稿: 5
使用環境:
windows7,FlashCS5
外部クラスの中のタイムラインへムービークリップを作成するとエラーになる?
gotoAndPlay()などを用いて、画像を切り替える動作を行いたかったために、
ライブラリに Cube という名前のムービークリップを、ActionScriptリンケージの2つの書き出しチェックを☑にして、
クラス、基本クラスを設定後、作成しました。


その後、「クラスを編集」から、Cube.asを編集していきました。
この時、外部クラス Cube.as を Sprite ではなく MovieClip を継承させて、
タイムラインをいじれるようにしています。

public class Cube extends MovieClip

としています。


このCubeのタイムライン上に、新しいシンボルを作ろうと試みたのですが、
グラフィックでは問題なく動作するのにも関わらず、
ムービークリップで作成すると、
Cube.as上にgetCubeという関数があるのですが、

TypeError: Error #1006: getCube は関数ではありません

というエラーを吐いてしまい、
なぜこのようなことが起こるのかが分かりません。


この場合はムービークリップは使えないのでしょうか?
なぜ使えないのでしょうか?




どうしてムービークリップが使いたいのかと言いますと、
プロパティのフィルターを用いたモーショントゥイーンを作成したいからです。
グラフィックでもプロパティのカラー効果を使用することである程度代用は出来ますが、
どうしても知りたくなったため、どうかよろしくお願い致します。
とんび
Åê¹ÆNo.50158
投稿日時: 2014-2-9 16:48
Bak@Fla大巨匠
居住地: 佐賀県 杵島郡
投稿: 275
使用環境:
MX
CS3
:Flash CS6:CS6
.7.5
Re: 外部クラスの中のタイムラインへムービークリップを作成するとエラーになる?
 使えると思います。

 ここに書いてある以外のところで、なんか間違ってるんじゃなかろうか。
 例えば、関数のスコープがpublicになってないとか。


 あとスクリプトはcodeで括った方が読みやすいですよ。
 メッセージを書き込む際に上の<>ってアイコンのボタンで括れますから。


----------------
鳶嶋工房

weedmill
Åê¹ÆNo.50159
投稿日時: 2014-2-9 16:56
新米
居住地: Tokyo
投稿: 5
使用環境:
windows7,FlashCS5
Re: 外部クラスの中のタイムラインへムービークリップを作成するとエラーになる?
codeの件分かりました。

この問題でかなり悩んでいて、
使えると聞けて、とても助かりました。

なんとか頑張ってみます。

どこが違っていたかは、はっきり分かったら載せようと思います。

お時間頂けてかたじけないです。
weedmill
Åê¹ÆNo.50160
投稿日時: 2014-2-9 17:43
新米
居住地: Tokyo
投稿: 5
使用環境:
windows7,FlashCS5
Re: 外部クラスの中のタイムラインへムービークリップを作成するとエラーになる?
原因が分かりました。

一度頭の中をからっぽにするのは大切ですね…。
痛感しました。

それから…深夜帯の徹夜プログラミングも非常に危ないものですね…。


原因は MouseEvent にありました。


予想とは全く見当違いの場所でした。

先ほどの Cube というクラスは、画面に敷き詰めてパズルゲームをする際に使用するものなのですが、

このプログラムでは、 Main.as からスタートさせて、
Cube インスタンスを作成し、
その一つ一つに MouseEvent.MOUSE_OVER を割り当てています。
マウスが Cube シンボルの上に乗ったとき、
任意の関数に MouseEvent型データ を送る訳ですが、この時、
その関数の中で、 target プロパティを使用していました。
この target プロパティが問題を引き起こしていました。

目論見としては、
target プロパティを用いて Cube クラスを参照し、現在の座標を受け取る。
という形なのですが、
この target プロパティが、 Cube クラスではなく MovieClip クラスを拾ってしまうため、
Cube クラスの getCube() という関数が見つからず(当たり前ですね…)

#1006 エラーを吐いて、教えてくれていたということでした。


とんびさん、
キッカケを作って頂けて本当に感謝しています。
さっぱりしました!清々しいです!
ありがとうございました!
とんび
Åê¹ÆNo.50162
投稿日時: 2014-2-9 23:06
Bak@Fla大巨匠
居住地: 佐賀県 杵島郡
投稿: 275
使用環境:
MX
CS3
:Flash CS6:CS6
.7.5
Re: 外部クラスの中のタイムラインへムービークリップを作成するとエラーになる?
 なんだか解決したみたいで良かったです。

 要するにCubeクラスにキャストすれば良かった、ってことなのかな。
 例えば、次のような感じで。

cube = Cube( targetMovieClip ).getCube()


 わりとやりがちなミスですね。私も良くやります


----------------
鳶嶋工房

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops