良い友達が私にこのサイトを勧めてくれました、それは本当に便利に見えます!私はactionscriptで少し恥知らずな初心者であり、3日間のチュートリアルとアドバイスの後、レンガの壁にぶつかりました。
AS3glueと呼ばれるものを使用して、フラッシュと通信するarduinoにセンサーを接続することができました。それは機能します。センサーが0を読み取るという条件に対してtrace( "leaf")を設定すると、"leaf"という単語のプリントアウトが表示されます。ただし、何かをトレースするだけでなく、この条件が満たされたときにプログラムで画面にグラフィックを表示させたいと思います。
条件が満たされるたびに、画面上のランダムな位置に「Enemy」というライブラリオブジェクトを生成するようにプログラムを取得しようとしています。私がゲームのチュートリアルに従っているので、それは敵と呼ばれています...実際にはそれは葉の絵です。
これが私に問題を引き起こしているコードのビットです:
var army:Array; varenemy:敵;
関数AvoiderGame(){army = new Array(); var newEnemy = new Enemy(100、100); army.push(newEnemy); addChild(newEnemy); }関数timerEvent(event:Event):void {
if(a.getAnalogData(0)== 0 && a.getAnalogData(0)!= this.lastposition){
trace("leaf"); var randomX:Number = (Math.random() * 200) + 100; var randomY:Number = (Math.random() * 150) + 50; var newEnemy = new Enemy( randomX, randomY); army.push( newEnemy ); addChild( newEnemy ); } else if (a.getAnalogData(0) == 0) { //don't trace anything } >else {
//何もトレースしない}this.lastposition= a.getAnalogData(0); //その後、位置を新しい最後の位置に設定して繰り返します。
}
「importflash.display.MovieClip;」をインポートしました
Enemyクラスのコードは次のようになります。
パッケージ{importflash.display.MovieClip; public class Enemy extends MovieClip {public function Enemy(startX:Number、startY:Number){x = startX; y = startY; }}}
これが私のエラーです。私はグーグルを試しました、それはかなり一般的なエラーのようです:
TypeError:エラー#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。as3glue_program_fla :: MainTimeline / timerEvent()at flash.utils :: Timer / _timerDispatch()at flash.utils :: Timer / tick()
「Enemy」オブジェクトがAS3にエクスポートされていることを確認しました。
AS2でプログラムされている場合は、次のようなものを使用します。
leafCounter = 0; //カウンターを0に設定counter.swapDepths(1000); // 1000枚以上の葉を作らない限り、ほとんど何でも上にカウンターを置きます!counter.textbox.text = 0; //「カウンター」ムービークリップのテキストボックスに「0」を表示します
this.onMouseDown = function(){//マウスがクリックされるとトリガーthis.attachMovie( "Leaf"、 "Leaf" + leafCounter、leafCounter、{_ x:Math.random()* Stage.width、_y:Math.random ()* Stage.height、_rotation:Math.random()* 360}); //ランダムな位置とランダムな回転でステージにリーフを追加しますleafCounter++; //リーフカウンターに1を追加しますcounter.textbox.text=leafCounter; //その番号をテキストボックスに表示します}
単純なエラーであるに違いないと確信しています。画面上の何かをトレースするだけでロジックを機能させることはできますが、「敵」を生成することはできません。
ヘルプやヒントは本当に役に立ちます!私はこれが既存のコードを変更するというちょっとした手間のかかる仕事であることを知っています。