我遇到了使用trace()的问题;跟踪不能在Actionscript 3中使用Flash CS5
例如,在我的项目(和其他项目)中的多个点上,我有跟踪语句,直到最近才开始工作。出于某种原因,在之前工作过的相同项目中,跟踪不再在“输出”窗口中显示任何内容。
我已经确认并做了以下内容:
- 证明:对于输出滤波器是无或放牧
- 我发布预览到Flash,HTML不
- 在发布设置选项卡,“忽略跟踪动作”未被选中
- 已验证我通过双击Flashplayer窗口进行双击检查并看到“调试器”选项,从而验证了Flash Player调试器。
- 重置工作区,以防万一有什么奇怪的事情发生。
- 阅读StackOverflow中关于同一问题的其他3篇文章,尝试了每个人的解决方案,但尚未得到它的工作。
有没有人有任何想法?我添加了完整的代码。
package
{
//importing classes
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.events.Event;
//END importing classes
public class Main extends Sprite
{
//class level variables
private const FIELD_W:uint=9;
private const FIELD_H:uint=9;
private const NUM_MINES:uint=10;
private var mineField:Array=new Array();
private var game_container:Sprite=new Sprite();
private var tile:tile_movieclip;
private var timer:Timer=new Timer(1000);
private var toolbar:toolbar_mc;
private var gameOver:Boolean=false;
private var firstClick:Boolean=true;
private var remainingTiles:uint=FIELD_W*FIELD_H;
private var minesLeft:uint=NUM_MINES;
private var screenFrame:Screens;
//END class level variables
public function Main()
{
//Mine Field Creation
for (var i:uint=0; i<FIELD_H; i++)
{
mineField[i]=new Array();
for (var j:uint=0; j<FIELD_W; j++)
{
mineField[i].push(0);
}
}
trace("My dangerous mine field: "+mineField);
//END Mine Field Creation
addChild(game_container);
for (i=0; i<FIELD_H; i++)
{
for (j=0; j<FIELD_W; j++)
{
tile = new tile_movieclip();
game_container.addChild(tile);
tile.gotoAndStop(1);
tile.nrow=i;
tile.ncol=j;
tile.buttonMode=true;
tile.x=tile.width*j;
tile.y=tile.height*i;
tile.addEventListener(MouseEvent.CLICK,onTileClicked);
}
}
// end of tile creation
//time amangement and game over
toolbar = new toolbar_mc();
addChild(toolbar);
//var s_height:uint= stage.height;
toolbar.y=725;
timer.start();
timer.addEventListener(TimerEvent.TIMER,onTick);
//end of time management and game over
}//END Main function
private function onTick(e:TimerEvent):void
{
toolbar.message_text.text="Elapsed time: "+timer.currentCount+"s";
//trace("Elapsed time: "+timer.currentCount);
}
private function tileValue(row,col:uint):int
{
if (mineField[row]==undefined || mineField[row][col]==undefined)
{
return -1;
}
else
{
return mineField[row][col];
}
}
private function onTileClicked(e:MouseEvent):void
{
if (!gameOver && remainingTiles > 0)
{
var clicked_tile:tile_movieclip=e.currentTarget as tile_movieclip;
clicked_tile.removeEventListener(MouseEvent.CLICK,onTileClicked);
clicked_tile.buttonMode=false;
var clickedRow:uint=clicked_tile.nrow;
var clickedCol:uint=clicked_tile.ncol;
var clickedValue:uint=mineField[clickedRow][clickedCol];
if (firstClick)
{
firstClick=false;
//placing mines
var placedMines:uint=0;
var randomRow,randomCol:uint;
while (placedMines<NUM_MINES)
{
randomRow = Math.floor(Math.random()*FIELD_H);
randomCol = Math.floor(Math.random()*FIELD_W);
if (mineField[randomRow][randomCol] ==0)
{
if (randomRow!=clickedRow||randomCol!=clickedCol)
{
mineField[randomRow][randomCol] = 9;
placedMines++;
}
}
}//END placing Mines
// placing digits
for (var i:uint=0; i<FIELD_H; i++)
{
for (var j:uint=0; j<FIELD_W; j++)
{
if (mineField[i][j]==9)
{
for (var ii:int =-1; ii<=1; ii++)
{
for (var jj:int =-1; jj<=1; jj++)
{
if (ii!=0||jj!=0)
{
if (tileValue(i+ii,j+jj)!=9&&tileValue(i+ii,j+jj)!=-1)
{
mineField[i+ii][j+jj]++;
}
}
}
}
}
}
}
var debugString:String;
trace("My complete and formatted mine field: ");
for (i=0; i<FIELD_H; i++)
{
debugString="";
for (j=0; j<FIELD_W; j++)
{
debugString+=mineField[i][j]+" ";
}
trace(debugString);
}
// end of placing digits
// tile creation
}
if (e.shiftKey)
{
clicked_tile.gotoAndStop(5-clicked_tile.currentFrame);
remainingTiles--;
if (remainingTiles ==0)
{
timer.stop();
//Create a for loop involving string for number that appears on tiles
toolbar.message_text.text="WinBomb";
screenFrame = new Screens();
game_container.addChild(screenFrame);
screenFrame.gotoAndStop("win");
}
if (clickedValue ==9)
{
minesLeft--;
if (minesLeft==0)
{
timer.stop();
//Create a for loop involving string for number that appears on tiles
toolbar.message_text.text="Mine Free!!";
removeChild(toolbar);
screenFrame = new Screens();
game_container.addChild(screenFrame);
screenFrame.gotoAndStop("win");
}
}
}
else
{
//empty tile
if (clickedValue == 0)
{
floodFill(clickedRow,clickedCol);
}//END empty Tile
// numbered tile
if (clickedValue>0&&clickedValue<9)
{
clicked_tile.gotoAndStop(2);
clicked_tile.tile_text.text=clickedValue.toString();
remainingTiles--;
if (remainingTiles ==0)
{
toolbar.message_text.text="Mine Free!!";
removeChild(toolbar);
screenFrame = new Screens();
game_container.addChild(screenFrame);
screenFrame.gotoAndStop("win");
}
}// end of numbered tile
// mine
if (clickedValue==9)
{
clicked_tile.gotoAndStop(3);
timer.removeEventListener(TimerEvent.TIMER,onTick);
removeChild(toolbar);
screenFrame = new Screens();
game_container.addChild(screenFrame);
screenFrame.gotoAndStop("lose");
/*timer=new Timer(5000);
timer.start();
trace("Timer to End: "+timer.currentCount);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, loseScreen); screenFrame = new Screens();
*/
}// end of mine
}
}
else if (remainingTiles == 0)
{
timer.stop();
toolbar.message_text.text="Mine Free!!";
removeChild(toolbar);
screenFrame = new Screens();
game_container.addChild(screenFrame);
screenFrame.gotoAndStop("win");
}
}//END onTileClicked function
private function floodFill(row,col:uint):void
{
var emptyTile:tile_movieclip;
emptyTile=game_container.getChildAt(row*FIELD_W+col) as tile_movieclip;
if (emptyTile.currentFrame==1)
{
emptyTile.removeEventListener(MouseEvent.CLICK,onTileClicked);
emptyTile.buttonMode=false;
emptyTile.gotoAndStop(2);
if (mineField[row][col]>0)
{
emptyTile.tile_text.text=mineField[row][col].toString();
remainingTiles--;
}
else
{
emptyTile.gotoAndStop(5);
remainingTiles--;
}
if (mineField[row][col]==0)
{
for (var ii:int =-1; ii<=1; ii++)
{
for (var jj:int =-1; jj<=1; jj++)
{
if (ii!=0||jj!=0)
{
if (tileValue(row+ii,col+jj)!=9)
{
if (tileValue(row+ii,col+jj)!=-1)
{
floodFill(row+ii,col+jj);
}
}
}
}
}
}
}
}//END floodFill
/* private function loseScreen(e:TimerEvent)
{
timer.removeEventListener(TimerEvent.TIMER_COMPLETE, loseScreen);
game_container.addChild(screenFrame);
screenFrame.gotoAndStop("lose");
}*/
}//END Main CLass
}//END package
您是否确定您追踪的线路已到达? – BadFeelingAboutThis 2014-09-02 22:35:23
代码?简化,如果可能的话? – Craig 2014-09-03 02:10:50
现在添加代码,这用于在输出中显示跟踪,现在不会,代码也没有更改。 @Craig – 2014-09-03 13:38:57