私は AS を始めたばかりで、見つけたマインスイーパ ゲームで遊んでいます。ゲーム ボードの各セルには、数字用のダイナミック テキスト ボックス (number_txt) が埋め込まれたムービー クリップ (cell_mc)、単色の正方形のムービー クリップ (block_mc)、および爆撃されたボックスをマークする小さなフラグ (flag_mc) があります。 )。また、ボードに残っている地雷の数をカウントするための別の動的テキスト ボックスもあります (minecounter_txt)。
私の問題は、ゲームを実行しようとすると、「this.parent.flag_mc」または「this.parent」に言及された要素のいずれかがあるすべての場所で、Flash がエラー コード「1119: 可能性のあるアクセス」を返すことです。未定義のプロパティ flag_mc (またはその他の要素) が、静的型セルの参照を介して." そして minecounter_mc を使用すると、「1119: 静的タイプの flash.display:DisplayObjectContainer を使用した参照を通じて、未定義の可能性があるプロパティ flag_mc (またはその他の要素) にアクセスする」が返されます。
静的型の要素を参照できないとのことで、動的型として認識できなかったのではないかと推測。私は解決策を探し、親の前に動的要素を宣言すると役立つことを読みました。
誰でも助けることができますか?ありがとう。
package {
import flash.display.MovieClip;
import flash.display.DisplayObjectContainer;
import flash.events.MouseEvent;
public class cell extends MovieClip {
public var state:Boolean;
public var revealed:Boolean;
public var xcor:uint;
public var ycor:uint;
public var marked:Boolean;
public var cellValue:int;
public function cell(corx:uint, cory:uint) {
// constructor code
this.state = false;
this.revealed = false;
this.marked = false;
this.cellValue = 0;
this.xcor = corx;
this.ycor = cory;
this.flag_mc.visible = false;
this.addEventListener(MouseEvent.CLICK, cellClicked);
}//end of constructor
private function cellClicked(event:MouseEvent):void{
if(event.shiftKey){
if(this.marked){
this.flag_mc.visible = false;
this.marked = false;
this.parent.minecounter_txt.text = String(int(this.parent.parent.minecounter_txt.text) + 1);
} else{
this.flag_mc.visible = true;
this.marked = true;
this.parent.minecounter_txt.text = String(int(this.parent.parent.minecounter_txt.text) - 1);
}
} else{
if(!state){
openCell();
} else{
if(!this.marked){
this.parent.play_btn.visible = true;
}
}
}
}
private function openCell(){
if(!this.marked && !this.revealed){
this.block_mc.visible = false;
this.revealed = true;
this.removeEventListener(MouseEvent.CLICK, cellClicked);
}
}
}//end of class
}//end of package