PDA

Volledige versie bekijken : textformat wordt niet gebruikt


Freeji
%Europe/Berlin %962 %2010, 23:05
Hallo allemaal! Dit is mijn code.

Main.as

package src{
import flash.display.*;
import flash.events.*;
import flash.text.*;
import src.classes.NavBar;

public class Main extends MovieClip {

var _menuText:Array = new Array();

public function Main(){
init();
buildNavBar();
}

private function init():void {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;//kan ook .TOP; dan bij scalen gaat hij naar boven.
_menuText = ["Blog","About","Contact"];//Komt straks uit een XML
}

private function buildNavBar():void {
var navBar:NavBar = new NavBar(_menuText);
addChild(navBar);
navBar.x = navBar.y = 50;
}

}

}
NavBar.as

package src.classes{

import flash.events.*
import flash.display.*;
import flash.text.*;
import src.gs.plugins.*;
import src.gs.TweenLite;

public class NavBar extends MovieClip {

public function NavBar(btnNames:Array):void{
for each (var buttonName:String in btnNames){

var button:MovieClip = new MovieClip();
button.name = buttonName;
addChild(button);

for(var i:int=0;i<=1;i++){
button.addChild(createTxtFld(buttonName, i));
}

}
}//end NavBar public function

//aanmaken van de twee textfields per menuitem
private function createTxtFld (buttonName:String, i:int):TextField{
var txtFld:TextField = new TextField();
var naam:String = "txtFld"+i;
txtFld.name = naam;
txtFld.setTextFormat(setTxtFormat(i));
txtFld.autoSize = TextFieldAutoSize.LEFT;
txtFld.selectable = false;
txtFld.width = txtFld.width-5;
txtFld.height = txtFld.height-5;
txtFld.text = buttonName;
txtFld.y=-30*i;
return txtFld;
}//end createTxtFld private function

private function setTxtFormat(selectColor:int):TextFormat{
var txtFmt:TextFormat = new TextFormat();
txtFmt.font = "Cooper Std Black";
txtFmt.align = "left";
txtFmt.size = 20;
//kleur van de 2e textfield moet anders zijn
if (selectColor != 1){
txtFmt.color = 0xFF00FF;
}else{
txtFmt.color = 0x00FF00;
}
return txtFmt;
}//end createTxtFormat private function

}//end NavBar public class
}//end class
Mijn probleem is het volgende. Dit alles werkt. Alleen wordt de textFormat niet aan mijn textfield gekoppeld en krijg dus al de eigenschappen uit de function txtFormat niet te zien. Weet iemand wat ik fout doe?

Met groet

Freeji
%Europe/Berlin %995 %2010, 23:53
Ik heb mijn code wat schoner gemaakt zodat het wat overzichtelijker wordt. Ook nu heb ik het nog steeds het probleem dat mijn format niet wordt gebruikt/herkent. Ziet iemand een fout in mijn code?

NavBar.as

package src.classes{

import flash.events.*
import flash.display.*;
import flash.text.*;
import src.gs.plugins.*;
import src.gs.TweenLite;

public class NavBar extends MovieClip {

public function NavBar(btnNames:Array):void{

for each (var buttonName:String in btnNames){

for(var i:int=0;i<=1;i++){
createTxtFld(buttonName,i);
}

}

}//end NavBar public function

//aanmaken van de twee textfields per menuitem
private function createTxtFld (buttonName:String,i:int){
var txtFld:TextField = new TextField();
var naam:String = "txtFld"+i;
txtFld.name = naam;
txtFld.setTextFormat(setTxtFormat(i));
txtFld.autoSize = TextFieldAutoSize.LEFT;
txtFld.selectable = false;
txtFld.width = txtFld.width-5;
txtFld.height = txtFld.height-5;
txtFld.text = buttonName;
txtFld.y=-30*i;
addChild(txtFld);
}//end createTxtFld private function

private function setTxtFormat(selectColor:int):TextFormat{
var txtFmt:TextFormat = new TextFormat();
txtFmt.font = "Cooper Std Black";
txtFmt.align = "left";
txtFmt.size = 20;
//kleur van de 2e textfield moet anders zijn
if (selectColor != 1){
txtFmt.color = 0xFF00FF;
}else{
txtFmt.color = 0x00FF00;
}
return txtFmt;
}//end createTxtFormat private function

}//end NavBar public class
}//end class

Freeji
%Europe/Berlin %051 %2010, 01:14
Ik heb het idee dat niemand een fout kan ontdekken. Zijn er andere factoren die mee kunnen spelen waardoor ik niet te zien krijg wat ik hoor te zien / wil zien? Ik gebruik flash Adobe Flash cs3 Profecional (versie 9.0).

Jan
%Europe/Berlin %059 %2010, 01:26
Beetje geduld kan geen kwaad, je vraag is hooguit 2 uur oud.
Je moet eerst text toekennen en dan pas setTextFormat doen. En anders moet je defaultTextFormat gebruiken.

Jan

Freeji
%Europe/Berlin %082 %2010, 01:59
Inderdaad, beetje ongeduldig... :). Anyway, het werkt! Bedankt Jan!