2016-07-03 18 views
-1

次のコードがあり、フラッシュイベントがすべて正しくロードされています。 ballはムービークリップであり、クラスが割り当てられています。インスタンスの移動方法

var speedx: Number=5; 
var speedy: Number=3; 
var myball = new ball(); 
addChild(myball); 
addEventListener(Event:ENTER_FRAME,ballmove); 
function ballmove(e:Event):void{ 
    myball.x+=speedx; 
    myball.y+=speedy; 
} 

しかし、今のインスタンスmyballが移動しません、それは単に位置0,0で立ち往生しています。親切..私とどのようにstarightラインに沿って移動するには、このmyballを取得するアドバイスを助ける

私はドラッグと

myball.x+=speedx; 
myball.y+=speedy; 

は完全に働いた後、ライブラリからインスタンスを落としたが、動作しませんしていた場合addChildの後に与えられます。

+0

のようになります。あなたは、プロジェクト内の他のコードをお持ちですか? – null

+0

こんにちは@Joseph。 StackOverflowへようこそ。答えがうまくいく場合は、それを正しいものとしてマークしてください(目盛りをクリックしてください)。このようにして、他の人は実際の解決策があることを知ることができます働いていない場合は、他の人があなたに手伝ってもらうためにフィードバックを与えてください。 –

答えて

1

コードでEvent:ENTER_FRAMEを間違って使用した場合は、Event.ENTER_FRAMEとなります。私は "サイレント"エラーがあるのだろうか?ムービーをテストするときは、Ctrl + Shift + Enterキーを使用してデバッガを実行します(問題点やエラーについてより良いフィードバックを与えます)。

var myball = new ball();は何も意味しません。あなたは、このロジックを使用して、インスタンスを宣言:
VAR :データのタイプ= 、あなたのコードでは、ここであなただけそのVAR = を言いました。驚いたことにそれは動作しますが、それに慣れると将来の大きなプロジェクトで問題につながるのではないかと思います。

インスタンス名は、ステージ上にすでに存在するオブジェクトにのみ影響します。コード(ライブラリから)で追加する場合は、リンケージという名前を使用して、オブジェクトの新しいインスタンスを作成してください。

ソリューション:
ライブラリで、「ボール」オブジェクトを右クリックし、「プロパティ」を選択し、そこに「名前」ballであることを確認し、「ActionScriptのためエクスポート」をダニ(「クラス」がClass: ballになるはずです)。 OK。

今、あなたのコードでは、あなたがして、新しいインスタンスを作成することができます。var myball: ball = new ball(); ...

あなたのコードは

var speedx: Number=5; 
var speedy: Number=3; 
var myball: ball = new ball(); 

addChild(myball); 
addEventListener(Event.ENTER_FRAME, ballmove); 

function ballmove(e:Event):void 
{ 
    myball.x += speedx; 
    myball.y += speedy; 
} 
+0

私は思っています:リンケージが機能していなかった場合、0/0の位置にインスタンスがありません。 – null

+0

@nullまた、彼は 'Event.ENTER_FRAME'の代わりに' Event:ENTER_FRAME'を使用しましたが、通常のエラーは発生しませんでした。それはリンケージなど) –

+0

実際には本当の問題かもしれません。良い発見。 – null

関連する問題