
以下のようなコードで、ブロック崩し的なものを作ろうとしています。
.flaファイルのステージ上には、プレイヤーが操る左右に動く棒状の自機があります。
ボールはステージにあらかじめ配置せずに、コードの中でnew演算子で呼び出して、最初は自機の子要素として自機にくっついており、スペースキーを押すとボールがステージの子要素に変わり、発射されるようにしたいのですが、以下のコードだとエラーになります。
~略~
public class Main extends MovieClip
{
var vx:int;
public function Main():void
{
init();
}
function init():void
{
vx = 0;
var ball:Ball = new Ball(); ←ここについての質問です
player.addChild(ball);
ball.x = 0;
ball.y = 0;
stage.addEventListener('keyDown',onKeyDown);
stage.addEventListener('keyUp',onKeyUp);
stage.addEventListener('enterFrame',onEnterFrame);
}
function onKeyDown(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.LEFT)
{
vx = -5;
}
else if (e.keyCode == Keyboard.RIGHT)
{
vx = 5;
}
else if (e.keyCode == Keyboard.SPACE)
{
stage.addChild(ball); ←この行でエラーが出ます。
ball.x = player.x;
ball.y = player.y;
}
}
~以下略~
この場合、「1120: 未定義のプロパティ ball へのアクセスです。」と、エラーが出てしまいます。
ですが、ボールをステージにあらかじめ配置しておくと、うまくいきます。
子要素を変えなくても作れるとは思うんですが、
あえてそうするなら、new演算子で動的に配置したインスタンスの場合、
どのようなコードを書いたらよいでしょうか?
ご教授お願いします。
No.1ベストアンサー
- 回答日時:
そのBallというクラスの定義は、
class Ball extends MovieClip
という継承宣言は入っていますか?
stageにaddChild()できるのは、MovieClipやSpriteクラスを継承したクラスのインスタンスだけですよ。
ありがとうございました。
どうやらエラーの原因の目の付け所が間違っていたようです。
インスタンスの変数宣言をinitメソッド内で定義していたので、
インスタンスの入れ物用のball変数がローカルスコープになっていたようです。
メソッドの外で定義し直したらいけました><
また機会がありましたらアドバイスお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ActionScript 3.0についての質...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
-
uwscでExcelに自動記入
-
自分でチラシを作りたいです!...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB.NET】別Formのボタンが押...
-
VB6.0で、フォームから、別のフ...
-
DataTableの件数を取得したい
-
外部swfとして読み込ませると動...
-
「Me」を「Form1」にするとエラ...
-
画像を一定時間ごとに切り替え...
-
ハンドルからインスタンス?を取...
-
フォームの生成と破棄
-
【ActionScript】コンボボック...
-
CreateDialogについて
-
buttonの色を変えたい
-
インスタンスとポインタ
-
ウインドウハンドルとインスタ...
-
as3 getChildByNameに変数を利...
-
VB6.0のHideのバグ?
-
SharedObjectについて
-
Flashの画面をJPEG画像にしてメ...
-
変数に256文字以上のテキストを...
-
else if文の順序を変えることに...
-
photoshopで書いた四角の枠の中...
おすすめ情報