画面に 3 つの異なる色の円が表示され、異なるクリック数で消えるような「ゲーム」を作成しています。メインの mxml 関数と、他に 4 つのクラスがあります。もうすぐ完成だと思っていましたが、エラーが発生しました。エラーが何であるかがわかりません。ここにルーブリックへのリンクがありますコードを実行すると発生するエラーは次のとおりです:「エラー #2032: ストリーム エラー。URL: file:///C|/Users/Gabe/Adobe Flash Builder 4.6/Project 1/bin -debug/framework_4.6.0.23201.swf" これが私のコードです:
main.mxml:
import com.multiClicker.*;
import spark.components.Image;
//create the init function
public function init():void {
//create new target and add it to the stage
onEnterFrame();
}
public function onEnterFrame(e:Event):void{
//2% chance of being added per frame
if(Math.random() <= .02) {
//33% chance of adding red target
if(Math.random() <= .033){
//make a new image
var newCircle1:RedTarget = new RedTarget();
this.addElement(newCircle1);
//position circle
newCircle1.x = Math.random() * stage.stageWidth;
newCircle1.y = Math.random() * stage.stageHeight;
}
//33% chance of adding blue target
else if(Math.random() > .066){
//make a new image
var newCircle2:BlueTarget = new BlueTarget();
this.addElement(newCircle2);
//position circle
newCircle2.x = Math.random() * stage.stageWidth;
newCircle2.y = Math.random() * stage.stageHeight;
}
//33% chance of adding green target
else {
//make a new image
var newCircle3:GreenTarget = new GreenTarget();
this.addElement(newCircle3);
//position circle
newCircle3.x = Math.random() * stage.stageWidth;
newCircle3.y = Math.random() * stage.stageHeight;
}
}
}
私の Target.as ファイル:
package com.multiClicker{
//import the needed classes
import flash.display.Shape;
import flash.events.MouseEvent;
import flash.utils.Timer;
import spark.components.Image;
public var hp:Number;
public class Target extends Image
{
public function Target() {
//add event listeners
this.addEventListener(MouseEvent.CLICK, onClick);
}
//sets the hp of the target
public function hP():Number {
return hp;
}
//get function that returns false if alpha is <= 0
public function dead():Boolean {
if(alpha <= 0){
return false;
}
}
//subtracts one from targets HP when clicked
public function onClick(e:MouseEvent = null):void {
//subtracts one from hp each click
hp--;
if(hp <=0) {
this.addEventListener(onEnterFrame);
}
}
//subtracts .1 from the classes alpha
public function onEnterFrame(e:Timer):void{
this.alpha =- .1;
}
//draws the target
public function drawTarget(color):void {
var circle:Shape = new Shape();
circle.graphics.beginFill(color);
circle.graphics.drawCircle(0,0,30);
}
}
}
次に、ターゲット ファイル Red、Blue、および GreenTarget.as はすべて同じです。
package com.multiClicker{
import flash.events.MouseEvent;
public class RedTarget extends Target
{
private var hp:Number = 3;
public function RedTarget()
{
//draw the red circle
this.graphics.beginFill(0x990000);
this.graphics.drawCircle(0,0,30);
//include the super function
super();
}
//subtracts one from targets HP when clicked
override public function onClick(e:MouseEvent=null):void {
super.onClick(e);
//subtracts one from hp each click
hp--;
if(hp <=0) {
this.addEventListener(onEnterFrame);
}
}
}
}
Target と GreenTarget でのみエラーが発生します。エラーの内容や場所はわかりません。どんな助けでも素晴らしいでしょう!
編集:取得していたエラーメッセージを投稿しました。Flash Builder で clean 関数を使用したところ、エラーが消去されました。次に、もう一度実行すると、ファイルが見つからないというエラーが表示されます。Main.swf が見つからないと表示されます。
edit2: エラーが見つかったと思います。Main.mxml ファイルの onEnterFrame 関数を削除すると、エラーはなくなりました。今、私はその機能の何が問題なのかわかりません。