Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-11-2011, 12:33   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
dynamische button mit text feld - positionieren hilfe

wenn ich so wie unten einige dynamaschie bts mit textfeld erstelle und dies neben einander positionieren will klappt nicht so wie es sein soll.

textfeld von bts haben verschieden länge, so dass ich mc hg auf diese textfeld gr0ße anpassen will und neben einander platzieren, klappt aber nicht.

PHP-Code:
var my_txt_feld:TextField;
var 
my_format:TextFormat;
var 
ofsetXY 2;
var 
breite:Number;
var 
hoehe:Number;
//
var my_texts:Array = new Array("Button 1""Button 2 Klick""Button 3 Andere Breite""Und So Weiter");
//
//
for(var i:uint=0i<my_texts.lengthi++){
    
// 
    // main mc erstellen
    
var _mc:MovieClip = new MovieClip();
    
addChild(_mc);
    
//
    // definiere format
    
my_format = new TextFormat;
    
my_format.font "Verdana";
    
my_format.color 0x000000;
    
my_format.size 12;
    
//
    // text feld erstellen
    
my_txt_feld= new TextField();
    
my_txt_feld.autoSize "center";
    
my_txt_feld.text my_texts[i];
    
my_txt_feld.setTextFormat(my_format);
    
my_txt_feld.selectable false;
    
my_txt_feld.ofsetXY;
    
my_txt_feld.ofsetXY;
    
breite my_txt_feld.width + (ofsetXY*2);
    
hoehe my_txt_feld.height + (ofsetXY*2);
    
//
    // hg erstellen
    
var _hg:Sprite = new Sprite();
    
_hg.graphics.beginFill(0xff6600);
    
_hg.graphics.drawRect(0,0,breite,hoehe);
    
_hg.graphics.endFill();
    
//
    
_mc.addChild(_hg);
    
_mc.addChild(my_txt_feld);
    
//
    // position
    
_mc.= (_mc.width+2)*i;
    
_mc.50;

Angehängte Dateien
Dateityp: fla tex.fla (5,1 KB, 3x aufgerufen)
palpalo ist offline   Mit Zitat antworten
Alt 23-11-2011, 20:43   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
hat denn niemand ein idee, wieso bts nicht rightig in x richtung positioniert?
palpalo ist offline   Mit Zitat antworten
Alt 23-11-2011, 20:55   #3 (permalink)
Neuer User
 
Benutzerbild von Little Boy II
 
Registriert seit: Apr 2010
Beiträge: 56
Das Problem liegt hier im Script in Verbindung mit dem "autoSize" wie es aussieht...

so würde er es richtig positionieren, aber leider schneidet er dann die TextFelder ab, weil das autoSize entfernt wurde und daher alle textFelder gleichgroß sind.

PHP-Code:
var my_txt_feld:TextField;
var 
my_format:TextFormat;
var 
ofsetXY 2;
var 
breite:Number;
var 
hoehe:Number;
//
var my_texts:Array = new Array("Button 1""Button 2 Klick""Button 3 Andere Breite""Und So Weiter");
//
//
for(var i:uint=0i<my_texts.lengthi++){
    
// 
    // main mc erstellen
    
var _mc:MovieClip = new MovieClip();
    
addChild(_mc);
    
//
    // definiere format
    
my_format = new TextFormat;
    
my_format.font "Verdana";
    
my_format.color 0x000000;
    
my_format.size 12;
    
//
    // text feld erstellen
    
my_txt_feld= new TextField();
    
//my_txt_feld.autoSize = "center";
    
my_txt_feld.text my_texts[i];
    
my_txt_feld.height 20;
    
my_txt_feld.setTextFormat(my_format);
    
my_txt_feld.selectable false;
    
my_txt_feld.ofsetXY;
    
my_txt_feld.ofsetXY;
    
breite my_txt_feld.width + (ofsetXY*2);
    
//hoehe = my_txt_feld.height + (ofsetXY*2);
    //
    // hg erstellen
    
var _hg:Sprite = new Sprite();
    
_hg.graphics.beginFill(0xff6600);
    
_hg.graphics.drawRect(0,0,breite,my_txt_feld.height);
    
_hg.graphics.endFill();
    
//
    
_mc.addChild(_hg);
    
_mc.addChild(my_txt_feld);
    
//
    // position
    
_mc.= (_mc.width+2)*i;
    
_mc.50;


Sollte ich noch etwas herausfinden, werde ich es posten
__________________
PRYING OPEN MY THIRD EYE
Little Boy II ist offline   Mit Zitat antworten
Alt 23-11-2011, 21:10   #4 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Du müsstest während der Erstellung der Buttons die jeweilige Größe checken.
Wenn die größte Breite ermittelt ist, alles mcs auf diese Breite bringen und dann positionieren.

LG André
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 23-11-2011, 21:23   #5 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Hier mal ein Beispiel anhand Deiner Vorgabe.
PHP-Code:
var my_txt_feld:TextField;
var 
my_format:TextFormat;
var 
ofsetXY 2;
var 
breite:Number;
var 
hoehe:Number;
var 
maxWidth:Number=0;
//
var my_texts:Array = new Array("Button 1""Button 2 Klick""Button 3 Andere Breite""Und So Weiter");
var 
mcArray:Array=[];
//
//
function buildButtons():void{
    for(var 
i:uint=0i<my_texts.lengthi++){
        
// 
        // main mc erstellen
        
var _mc:MovieClip = new MovieClip();
        
addChild(_mc);
        
//
        // definiere format
        
my_format = new TextFormat;
        
my_format.font "Verdana";
        
my_format.color 0x000000;
        
my_format.size 12;
        
//
        // text feld erstellen
        
my_txt_feld= new TextField();
        
my_txt_feld.autoSize ="center";
        
my_txt_feld.htmlText my_texts[i];
        
my_txt_feld.height 20;
        
my_txt_feld.setTextFormat(my_format);
        
my_txt_feld.selectable false;
        
my_txt_feld.ofsetXY;
        
my_txt_feld.ofsetXY;
        
breite my_txt_feld.width + (ofsetXY*2);
        
//hoehe = my_txt_feld.height + (ofsetXY*2);
        //
        // hg erstellen
        
var _hg:Sprite = new Sprite();
        
_hg.graphics.beginFill(0xff6600);
        
_hg.graphics.drawRect(0,0,breite,my_txt_feld.height);
        
_hg.graphics.endFill();
        
//
        
_mc.addChild(_hg);
        
_mc.addChild(my_txt_feld);
        
mcArray.push(_mc);
        
//
        
        
if (_mc.width>maxWidthmaxWidth=_mc.width       
    

    
setPositions();
};

function 
setPositions():void{
    for(var 
i:uint=0i<mcArray.lengthi++){
        var 
_mc:MovieClip mcArray[i]
        
_mc.width maxWidth;
        
_mc.= (_mc.width+2)*i;
        
_mc.50;
    }

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 24-11-2011, 09:57   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
funktioniert leider immer noch nicht so wie es sein soll.

jeder bt hat verschieden länge text.
hintergrund sprite von bts, die erstellt werden, sollen in breite wie der text feld breite haben.
dann soll diese bts neben einander platziert werden.
palpalo ist offline   Mit Zitat antworten
Alt 24-11-2011, 11:46   #7 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Du musst Dich einfach klarer ausdrücken, was das Ziel der Veranstaltung ist.
Daß der Text unterschiedlich lang ist, ist ja klar.
Werden die Buttons dadurch unterschiedlich groß?
Oder sollen sie eine Größe haben?

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 24-11-2011, 13:13   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Zitat:
Zitat von andrelehnert Beitrag anzeigen
Werden die Buttons dadurch unterschiedlich groß?
LG ANdré
genau
palpalo ist offline   Mit Zitat antworten
Alt 24-11-2011, 13:37   #9 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
dann so:
PHP-Code:
var my_txt_feld:TextField;
var 
my_format:TextFormat;
var 
ofsetXY 2;
var 
breite:Number;
var 
hoehe:Number;

//
var my_texts:Array = new Array("Button 1","Button 2 Klick","Button 3 Andere Breite","Und So Weiter");
var 
mcArray:Array = [];
//
//
function buildButtons():void
{
    for (var 
i:uint=0i<my_texts.lengthi++)
    {
        
// 
        // main mc erstellen
        
var _mc:MovieClip = new MovieClip();
        
addChild(_mc);
        
//
        // definiere format
        
my_format = new TextFormat  ;
        
my_format.font "Verdana";
        
my_format.color 0x000000;
        
my_format.size 12;
        
//
        // text feld erstellen
        
my_txt_feld= new TextField();
        
my_txt_feld.autoSize "left";
        
my_txt_feld.htmlText my_texts[i];
        
my_txt_feld.setTextFormat(my_format);
        
my_txt_feld.selectable false;
        
my_txt_feld.ofsetXY;
        
my_txt_feld.ofsetXY;

        
// hg erstellen
        
var _hg:Sprite = new Sprite();
        
_hg.graphics.beginFill(0xff6600);
        
_hg.graphics.drawRect(-ofsetXY, -ofsetXYmy_txt_feld.width ofsetXY 2my_txt_feld.height ofsetXY 2);
        
_hg.graphics.endFill();
        
//;
        
_mc.addChild(_hg);
        
_mc.addChild(my_txt_feld);
        
mcArray.push(_mc);
    }
    
setPositions();
}

function 
setPositions():void
{
    var 
lastX:Number 0;
    for (var 
i:uint=0i<mcArray.lengthi++)
    {
        var 
_mc:MovieClip mcArray[i];
        
_mc.lastX;
        
lastX +=  _mc.width 2;
    }
}
buildButtons(); 
LG André
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 24-11-2011, 13:50   #10 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
PHP-Code:
var buttonLabels:Array = ["Button 1""Button 2 Klick""Button 3 Andere Breite""Und So Weiter"];
buildButtons(buttonLabels2);

function 
buildButtons(labels:Array, offsetXY:Number=0):void
{
    
//Startposition für x
    
var px:int 0;
    
    for 
each(var label:String in labels){
        
// definiere format
        
var format:TextFormat = new TextFormat();
            
format.font "Verdana";
            
format.color 0x000000;
            
format.size 12;

        
// text feld erstellen
        
var tf:TextField = new TextField();
            
tf.autoSize "center";
            
tf.htmlText label;
            
tf.height 20;
            
tf.setTextFormat(format);
            
tf.selectable false;
            
tf.offsetXY;
            
tf.offsetXY;
            
        
//halbe Pixel sind uncool
        
var w:int Math.ceil(tf.width offsetXY*2);
        var 
h:int Math.ceil(tf.height);
        
//var h:int = Math.ceil(tf.height + offsetXY*2);
        
        // main mc erstellen
        // hg erstellen
        
var mc:Sprite = new Sprite();
            
mc.graphics.beginFill(0xff6600);
            
mc.graphics.drawRect00wh);
            
mc.graphics.endFill();
            
mc.addChild(tf);
            
mc.px;
            
mc.50;
        
addChild(mc);
        
        
px += w;
    }

versuch bitte auf my_ in Variablennamen zu verzichten, und nicht alle Varialen global zu definieren.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 24-11-2011, 19:07   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 855
Thumbs up

andrelehnert & thomas_E

danke euch beide.
funktioniert beide versionen
palpalo ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash 8] Dynamische Text Feld Innerhalb BT - Refreshen palpalo Flash Einsteiger 0 03-06-2011 21:30
[Flash MX] Button und text Feld in der Seite positionieren emy Flash Einsteiger 8 29-12-2010 18:14
Problem: Input text feld schickt den eingegebenen Text als HTML Code raus. Green_Hornet Flash 8 3 02-10-2007 11:49
input text feld zeigt geschriebenen text nicht an echo5-7 ActionScript 1 3 02-01-2007 15:10
Effekte mit variablen und Dynamische Text feld ChillY Flash MX 2004 14 25-08-2005 12:17


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele