0

私は as3 を初めて使用しますが、学習しながら学んでいます。ユーザーが「投稿」を作成できるように、テキスト フィールドの入力と共に表示されるコンテナーを作成しています。これは、アニメーションが完了すると自動的にステージから削除されるときに発生します。

ただし、約 1.5 ~ 2 分後に、コンテナが不可解に消えます。ユーザーが投稿を作成するのに 2 分以上かかる可能性があるため、これは問題です。なぜこれが起こっているのか、私は一生理解できません。ガベージコレクションの問題である可能性はありますか?

どんな助けでも大歓迎ですありがとう、

ダン

var titleText:Title = new Title();
var titleInput:TextField = new TextField();

var categoryText:Category = new Category();
var categoryInput:TextField = new TextField();

var postText:Text = new Text();
var postInput:TextField = new TextField();

//setup text formats to be used
var postCreationTextFormat:TextFormat = new TextFormat();

postCreationTextFormat.font = "arial";
postCreationTextFormat.size = 20;
postCreationTextFormat.align = "left";
postCreationTextFormat.leftMargin = 2;


//Fade In Post Creation Box after Seed to Bud Animation.
seedToBud.addEventListener(Event.REMOVED_FROM_STAGE, createPostInput);

//Some variables to declare for the createPostInput function.
var postCreationContainer:PostCreationContainer = new PostCreationContainer;
var contentWindow:ContentWindow = new ContentWindow;
var postCreationInputBoxes:PostCreationInputBoxes = new PostCreationInputBoxes;
var thumb:Thumb = new Thumb;
var track:Track = new Track;
var scrollDownArrow:ScrollDownArrow = new ScrollDownArrow;
var scrollUpArrow:ScrollUpArrow = new ScrollUpArrow;

function createPostInput(event:Event)
{
    addChild(postCreationContainer);    
    postCreationContainer.x = 230;
    postCreationContainer.y = 400;

    postCreationContainer.addChild(track);
    track.x = 428;
    track.y = 25;

    postCreationContainer.addChild(thumb);
    thumb.x = 418;
    thumb.y = 25;

    postCreationContainer.addChild(scrollDownArrow);
    scrollDownArrow.x = 418;
    scrollDownArrow.y = 269;

    postCreationContainer.addChild(scrollUpArrow);
    scrollUpArrow.x = 418;
    scrollUpArrow.y = 6;

    postCreationContainer.addChild(contentWindow);
    contentWindow.x = 6;
    contentWindow.y = 6;

    postCreationContainer.addChild(postCreationInputBoxes);
    postCreationInputBoxes.x = 6;
    postCreationInputBoxes.y = 6;

    postCreationContainer.alpha = 0;
    postCreationContainer.addEventListener(Event.ENTER_FRAME, fadeInCreatePostInput);

    postCreationInputBoxes.addChild(titleText);
    titleText.x = 0;
    titleText.y = 0;

    postCreationInputBoxes.addChild(titleInput);

    postCreationInputBoxes.addChild(categoryText);
    categoryText.x = 0;
    categoryText.y = 60;

    postCreationInputBoxes.addChild(categoryInput);

    postCreationInputBoxes.addChild(postText);
    postText.x = 0;
    postText.y = 124;

    postCreationInputBoxes.addChild(postInput); 

    titleInput.defaultTextFormat = postCreationTextFormat;
    titleInput.type = "input";
    titleInput.multiline = false;
    titleInput.wordWrap = false;
    titleInput.maxChars = 150;
    titleInput.border = true;
    titleInput.width = 403;
    titleInput.height = 30;
    titleInput.x = 0;
    titleInput.y = 32;
    titleInput.background = true;
    titleInput.backgroundColor = 0xFFFFFF;

    categoryInput.defaultTextFormat = postCreationTextFormat;
    categoryInput.type = "input";
    categoryInput.multiline = false;
    categoryInput.wordWrap = false;
    categoryInput.maxChars = 150;
    categoryInput.border = true;
    categoryInput.width = 403;
    categoryInput.height = 30;
    categoryInput.x = 0;
    categoryInput.y = 96;
    categoryInput.background = true;
    categoryInput.backgroundColor = 0xFFFFFF;

    postInput.defaultTextFormat = postCreationTextFormat;
    postInput.type = "input";
    postInput.multiline = true;
    postInput.wordWrap = true;
    postInput.maxChars = 500;
    postInput.border = true;
    postInput.width = 403;
    postInput.height = 361.5;
    postInput.x = 0;
    postInput.y = 156;
    postInput.background = true;
    postInput.backgroundColor = 0xFFFFFF;

    stage.focus = titleInput;
    seedToBud.removeEventListener(Event.REMOVED_FROM_STAGE, createPostInput);
}

function fadeInCreatePostInput(event:Event):void
{
    postCreationContainer.alpha += 0.05;
    if (postCreationContainer.alpha == 1)
    {
        postCreationContainer.removeEventListener(Event.ENTER_FRAME, fadeInCreatePostInput);
    }
}
4

1 に答える 1

0

アルファインクリメンターに丸めの問題がないことを知っていますか? 実際の浮動小数点値ではなく、アルファの整数値をチェックします。または、FUZZ の小さな値に対してファズ比較 (alpha >= 1-FUZZ && alpha <= 1+FUZZ) を実行します。

于 2012-05-08T18:59:22.787 に答える