2016-06-02 4 views
-1

Je construis une application avec flash as3.0. Ceci est mon code.addChild avec une boucle et des propriétés de hauteur différentes

function onCompleteLoadTimeline(event:Event){ 
    var result:Object = JSON.parse(event.target.data); 
    var yPos = 0; 

    for (var i:int=0;i<=2;i++){ 
     tpostArr[i] = new t_post(); 
     var batas_mc:batas = new batas(); 

     tpostArr[i].foto.x = 52.50; 
     tpostArr[i].foto.y = 52.50; 

     tpostArr[i].nama.x = 120; 
     tpostArr[i].nama.y = 20; 

     tpostArr[i].postingan.x = 120; 
     tpostArr[i].postingan.y = 55.15; 
     tpostArr[i].postingan.wordWrap = true; 
     tpostArr[i].postingan.autoSize = TextFieldAutoSize.LEFT; 

     tpostArr[i].tombol_suka.x = 440; 
     tpostArr[i].tombol_suka.y = 73; 
     tpostArr[i].nama.text = result[i].timeline_name;  
     tpostArr[i].postingan.text = result[i].timeline_post; 
     batas_mc.x = 0; 
     batas_mc.y = tpostArr[i].postingan.y + tpostArr[i].postingan.height + 20; 
     tpostArr[i].addChild(batas_mc); 

     timeline_mc.addChild(tpostArr[i]); 
     tpostArr[i].y = i* tpostArr[i].height; 
    } 
} 

sur la position y du tpost. la hauteur du tpost n'est pas toujours la même. tpost peut être plus élevé en fonction du tpostArr [i] .postingan.height et je veux que tpost ne se chevauche pas. Peut-il être résolu par enterFrame? si peux pouvez-vous montrer le code pour moi?

+0

Je l'ai entendu suggéré de toujours coder en anglais. Probablement une bonne habitude chaque fois que possible. Cela rendrait votre code plus facile à saisir. Mais je vais encore jeter un coup d'oeil entre le travail. –

Répondre

1

Je voudrais utiliser une variable pour contenir la plus grande valeur qui est pas chevauchement. En d'autres termes, si vous ajoutez une instance d'un objet d'affichage à x = 20, et l'objet d'affichage est de 10 pixels de large, la variable serait fixé à 30 comme ceci:

yourVar = yourMovieClip.x + yourMovieClip.width 

Ensuite, lorsque vous ajoutez la suivant, définissez sa limite inférieure à yourVar.

Ce concept devrait fonctionner et être assez facile à appliquer à votre situation.

Je pense que dans votre cas, vous essayez d'instancier vos objets avec un certain espace vertical, n'est-ce pas? Si oui, juste faire

yourVar = tpostArr[i].y + tpostArray[i].height; 

et définir la prochaine valeur y de l'instance à

yourVar + 5; // or whatever number of pixels you want. 

De cette façon, la hauteur de chaque instance peut être toute quantité, et vous avez une variable stockée qui sera le la prochaine valeur pour poster un tpost à.

J'espère avoir bien compris votre problème. Laissez-moi savoir si cela fonctionne.

+0

Merci beaucoup, ça marche très bien. Et je vais remplacer tout mon code avec l'anglais :) –