Volledige versie bekijken : Button met variable
dreamliner
%Europe/Berlin %431 %2010, 11:21
Hoi!
Ik ben een calender aan het maken, en ik heb mij het maand-overzicht 35 mc's allemaal M1-M35.
Nu wil ik deze aanroepen door de current day na de M te zetten dus bijv:
var currentDate:Date = new Date();
var today:Number = currentDate.day;
("M"+today).txtField.text = (today);
Nu krijg ik de error #1119 Acces of possibly undefined property txtField trough a reference with static type string.
Alleen als ik het trace krijg ik gewoon vandaag(M28 )... en in de movieclip M28 is het textfield txtField....
what to do?
greetz!
cornedor
%Europe/Berlin %485 %2010, 12:38
getChildByName("M"+today).txtField.text = (today)
dreamliner
%Europe/Berlin %500 %2010, 13:01
getChildByName("M"+today).txtField.text = (today)
Top dat je reageerd,
maar ik krijg een error 1119: Acces of possibly undefined property txtField trhough a reference with statis type flash.display:DisplayObject...
cornedor
%Europe/Berlin %517 %2010, 13:24
wat krijg je als je trace(getChildByName("M"+today).txtField) doet?
dreamliner
%Europe/Berlin %519 %2010, 13:27
wat krijg je als je trace(getChildByName("M"+today).txtField) doet?
zelfde
Salvago
%Europe/Berlin %526 %2010, 13:37
Probeer anders eens
var mToday:MovieClip = getChildByName("M" +today) as MovieClip; // as MC toegevoegd, gooit anders misschien error
trace(mToday.txtField);
dreamliner
%Europe/Berlin %529 %2010, 13:42
hij doet het!
hij zegt [textfield object].
thaanx!
dreamliner
%Europe/Berlin %531 %2010, 13:45
maar hoe zet ik dat om zodat het uiteindelijk wat.jij.net.typte.txtField.text = today;
Salvago
%Europe/Berlin %570 %2010, 14:40
Het wordt dan:
var currentDate:Date = new Date();
var today:Number = currentDate.day;
var mToday:MovieClip = getChildByName("M" + today) as MovieClip;
mToday.txtField.text = today;
mToday stelt de movieclip voor die je nodig hebt (bv. M15). Dus de onderliggende structuur is hetzelfde, en dus gewoon .txtField.text ;)
Succes!
sidar
%Europe/Berlin %234 %2010, 06:38
("M"+today)
Wat je doet is
String + Number.
Het is geen object referentie, het zijn 2 objecten die je bij elkaar wilt optellen =P.
Ik neem aan dat je van de AS2 gesnoept hebt =P
Misschien is het handiger als je een basis object aan maakt waar textfields etc met instance namen te bereiken zijn. Zal ook veel overzichtelijker worden hoe verder je in je project gaat.
So en nu is een lekkere slaapje.
dreamliner
%Europe/Berlin %398 %2010, 10:34
Klopt, ik zag al dat dit niet ging werken, met movieclips.
Dus heb ik hevig gezocht naar een tut die een calendar met as maakt. met succes!:D En dat slaapje, dat helpt ook wel ja:#.
var cellformat:TextFormat = new TextFormat();
cellformat.color=0xBDBDBD;
cellformat.size=16;
cellformat.align="right";
cellformat.font = "Helvetica";
var i:uint;
var allcells:Array = new Array();
// the second loop to create cells
for (i=0; i<42; i++) {
var cell:TextField = new TextField();
cell.background=true;
cell.backgroundColor=0xFFFFFF;
cell.border=true;
cell.borderColor=0xC2C2C2;
cell.selectable=false;
cell.width = 140;
cell.height = 93;
cell.setTextFormat(cellformat);
addChild(cell);
/* cell.x=10+(30*(i-(Math.floor(i/7)*7)));
cell.y=40+(30*Math.floor(i/7));*/
cell.x=16.5+(140*(i-(Math.floor(i/7)*7)));
cell.y=78+(93*Math.floor(i/7));
allcells.push(cell);
}
var now:Date = new Date();
var firs:Date=new Date(now.fullYear,now.month,1);
var days:Array=new Array(6,0,1,2,3,4,5);
var monthsdata:Array = [
{label:"January", data:0},
{label:"February", data:1},
{label:"March", data:2},
{label:"April", data:3},
{label:"May", data:4},
{label:"June", data:5},
{label:"July", data:6},
{label:"August", data:7},
{label:"September", data:8},
{label:"October", data:9},
{label:"November", data:8},
{label:"December", data:9},
];
function compute() {
var d:Number;
for (d=0; d<42; d++) {
allcells[d].text="";
allcells[d].backgroundColor=0xFFFFFF;
}
allcells[days[firs.day]].text = 1;
allcells[days[firs.day]].setTextFormat(cellformat);
var maxdays=30;
var leapyear:Number;
if (firs.fullYear%4==0&&firs.fullYear%100!=0||firs.fullYear%400==0) {
leapyear=1;
} else {
leapyear=0;
}
if (firs.month==0||firs.month==2||firs.month==4||firs .month==6||firs.month==7||firs.month==9||firs.mont h==11) {
maxdays=31;
} else if (firs.month==3 || firs.month==5 || firs.month==8 || firs.month==10) {
maxdays=30;
} else if (firs.month==1 && leapyear==1) {
maxdays=29;
} else {
maxdays=28;
}
var p:Number;
for (p=1; p<maxdays; p++) {
allcells[days[firs.day]+p].text = p+1;
allcells[days[firs.day]+p].setTextFormat(cellformat);
}
var l:Number;
for (l=0; l<maxdays; l++) {
if (allcells[l].text==now.date&&firs.fullYear==now.fullYear&&firs.month==now.month) {
allcells[l].backgroundColor=0xFFFFFF;
}
}
}
compute();
dit maakt:http://www.plaatjesupload.nl/bekijk/2010/08/29/1283059457-340.png.
Ben der wel tevreden mee, alleen nog 1 vraagje:X:
hoe maak ik van deze as dat de dagen die leeg zijn(zie eerste en laatste cell regel) dat ze dagen van de vorige/volgende maand alvast weergeven?
groeeteeen!8D
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.