PDA

Volledige versie bekijken : tooltip vullen lukt niet


latino
%Europe/Berlin %604 %2005, 15:30
ik heb even een nieuw topic geopend omdat dit weer een nieuw probleem is

ok ik wil dus een tooltip attachen..maar er wordt geen inhoud gegeven in het tekstveld..
ik heb van alles geprobeerd, maar het enige wat ik heb bereikt is dat overal 9.jpg komt te staan of overal undefined zoals nu




var toolTips:Array = ["Mooi","Nog Mooier","3.jpg","4.jpg","5.jpg","6.jpg","7.jpg","8.jpg","9.jpg"];

var xSpacing:Number = 226;
var ySpacing:Number = 132;
var xStart:Number = 61;
var yStart:Number = 52;

var v:Number = -1;
var i:Number = -1;
while(++i < 3){

var j:Number = -1;

while(++j < 3){
++v;
var name:String = "item"+ v;
mc = picsholder_mc.duplicateMovieClip(name,v);
mc._x = xStart + i * xSpacing;
mc._y = yStart + j * ySpacing;
mc.tekst = toolTips[v];
trace(mc.tekst);//hier laat ie alles keurig zien dus in de volgende stap moet het zitten
mc.mc2 = new MovieClipLoader();
mc.mc2.onLoadInit = function (mc2:MovieClip){

mc2.onRollOver = function(){
fadeIn(mc2);
showToolTip(mc.tekst);//met this. ervoor werkt ook niet en ook niet met mc2
}

}
pic = (v+1)+".jpg"
mc.mc2.loadClip(pic,"mc");

}
}

function showToolTip(tekst:String){

attachMovie("tooltip","target_mc",this.getNextHighestDepth());
this.target_mc._x = this._xmouse;
this.target_mc._y = this._ymouse;
this.target_mc.tooltip_txt.text = tekst;
}

dioneo
%Europe/Berlin %623 %2005, 15:57
je doet showToolTip(mc.tekst) binnen het object mc.mc2, dus een laag dieper. Kun je niet een _parent aanroepen?

latino
%Europe/Berlin %644 %2005, 16:28
ik begrijp je niet helemaal??

mc.tekst = toolTips[v];
trace(mc.tekst);

dit doet ie...het prbleem is ik kan geen variable meesturen in die ***** onLoadInit...ik dahct dat dit het makkelijker moest maken? die Moviecliploader class...geef mij maar loadmovie, maar ja dan koppelt die de events weer niet

dioneo
%Europe/Berlin %823 %2005, 20:46
ik bedoel dat je in mc.mc2 verwijst naar mc die dus een laag terug ligt.
In je mc.mc2 bestaat geen mc, wel een _parent (dat is mc)

showToolTip(mc.tekst) zou dus moeten wezen
showToolTip(_parent.tekst)

Nu is het zo dat ik nooit de MoveClipLoader gebruik, dus het kan zijn dat die iets met niet-overerfbare dingen heeft waar ik geen weet van heb (maar het wel stom zou vinden)

latino
%Europe/Berlin %393 %2005, 10:27
nee lukt ook niet?? volgens mij is het onmogleijk een variable door te sturen naar een MovieClipLoader

theFlashWizard
%Europe/Berlin %476 %2005, 12:26
nee je begaat gewoon weer dezelfde fout..
check..

for(i=0;i<5;i++){
mc = _root["mc"+i]
mc.i = i

mc.onRelease = function(){
gotoAndStop(mc.i)
}
}

dit doe jij..
maar wanneer de onRelease uitgevoert wordt.. je klikt erop.. is de for loop al afgerond en is de variabele mc gevult met de laatste i..
de truc is dus zoiets:
gotoAndStop(this.i)

hetzelfde is dat jij iets uit mc probeert te halen terwijl je while al is afgerond.. dus mc de verwijzing naar de laatste mc hebt gekrege..

snappie?

latino
%Europe/Berlin %521 %2005, 13:30
ja ik snap hem..maar waarom this? this verwijst toch weer naar mc? dus staat er dan toch hetzelfde?

zou je even kunnen kijken naar mijn code? aljeblieft?? ik wordt gek namelijk!

theFlashWizard
%Europe/Berlin %738 %2005, 18:44
this verwijst naar de mc waar je inzit.. over degene waar je overheen gaat met je muis..

latino
%Europe/Berlin %804 %2005, 20:18
zou je aub mijn code kunnen bekijken? in mijn vorige post staat de zip

ik zou het erg waarderen! alvast bedankt

theFlashWizard
%Europe/Berlin %806 %2005, 20:21
nee sorry vanaaf geen tijd voor..
mshn andere.. en anders moet je toch echt ff kijke hoever je met me uitleg komt of meer info zoeken over dit onderwerp..

latino
%Europe/Berlin %341 %2005, 09:11
ik heb alle onderwerpen al gelezen..ik dnek dat het daar niet aan ligt...het probleem is dat er geen variable mee "genomen " kan worden naar een movieClipLoader class...

misshien heb je van de week een beetje tijd?? het is niet zon lange code

dioneo
%Europe/Berlin %446 %2005, 11:42
deze werkt wel...

var toolTips:Array = new Array;
toolTips['item0']="a";
toolTips['item1']="b";
toolTips['item2']="c";
toolTips['item3']="d";
toolTips['item4']="e";
toolTips['item5']="f";
toolTips['item6']="g";
toolTips['item7']="h";
toolTips['item8']="i";
var xSpacing:Number = 226;
var ySpacing:Number = 132;
var xStart:Number = 61;
var yStart:Number = 52;

var v:Number = -1;
var i:Number = -1;
while(++i < 3){

var j:Number = -1;

while(++j < 3){
++v;
var name:String = "item"+ v;
mc = picsholder_mc.duplicateMovieClip(name,v);
mc._x = xStart + i * xSpacing;
mc._y = yStart + j * ySpacing;
mc.mc2 = new MovieClipLoader();
mc.mc2.tekst = toolTips[v];
mc.mc2.onLoadStart = function (mc2:MovieClip){
mc2.onRelease = function(){

}
mc2.onRollOver = function(){
fadeIn(mc2);
showToolTip(toolTips[this._name]);
}
mc2.onRollOut = function(){
fadeOut(mc2);
deleteToolTip();
}
}
pic = (v+1)+".jpg"
mc.mc2.loadClip(pic,"mc");

}
}

function fadeIn (bgClip){
new mx.transitions.Tween(bgClip,"_alpha", mx.transitions.easing.None.easeNone,80,100,7,false );
}

function fadeOut (bgClip){
new mx.transitions.Tween(bgClip,"_alpha", mx.transitions.easing.None.easeNone,100,80,7,false );
}
function showToolTip(tekst:String){
attachMovie("tooltip","target_mc",10);
target_mc.onEnterFrame = function(){
if(_ymouse < 54){
target_mc._y = _ymouse + target_mc._height;
}else if(_ymouse > 440){
target_mc._y = _ymouse - target_mc._height;
}
else if(_xmouse > 600){
target_mc._x = _xmouse - target_mc._width - 10;
}else{
target_mc._x = _xmouse + 20;
target_mc._y = _ymouse - 10;
}
}
target_mc.tooltip_txt.text = tekst;
}
function deleteToolTip(){
target_mc.removeMovieClip();
}

latino
%Europe/Berlin %458 %2005, 11:59
whaoooo!! jippie! hoe heb je dat nou gedaan?

alleen:
1. waarom onLoadStart?
2. kun je dit stukje uitleggen: showToolTip(toolTips[this._name]);

echt te gek!

dioneo
%Europe/Berlin %477 %2005, 12:27
Ik heb de array niet genummerd, maar de items dezelfde naam gegeven als de clips waarbij de tekst hoort. Voor een array maakt het niets uit of het gaat om array[2] of array['flashfocus'], het is gewoon een verwijzing naar een element.
Om het helemaal netjes te doen kun je een dubbele array aanmaken volgens
theElements:Array=new Array()
theElements['item_0']['image']="plaatje.jpg";
theElements['item_0']['uitleg']="hier een leuk plaatje";
theElements['item_1']['image']="nog_n_plaatje.jpg";
theElements['item_1']['uitleg']="hier <b>alweer</b> een leuk plaatje";
je snapt neem ik aan wel waar ik heen wil op die fiets.

Op de een of andere manier neemt de movieClipLoader inderdaad geen vars mee van de parent, maar weet natuurlijk wel wat de parent is. (waarschijnlijk omdat de moviecliploader geen object in de zin van het woord is, meer een procedure, maar dat weet ik niet helemaal zeker).
Daarom verwijs ik naar de array toolTips in de _root, en dan wel het element daarin met de naam van het huidige object.
Het regeltje mc.mc2.tekst = toolTips[v]; is hiermee overigens ook overbodig; je haalt zoals gezegd de tekst uit de array in de _root, niet uit het object zelf. Was ik vergeten te deleten in de haast.

onLoadInit werkt zodra het eerste frame van de nieuwe clip is geladen, onLoadStart werkt net daarvoor. Maakt voor deze functie niet uit; de naam van de clip is bij start al gezet, ook al zit er nog niets in de clip zelf. Maar beide doen het in dit geval net zo goed, en omdat je niet hoeft te wachten op de init-fase kun je net zo goed al bij start loos gaan.

overigens gebruik je var name:String = "item"+ v; wat niet helemaal netjes is; name is een gereserveerde naam. Kans dat zoiets bij nieuwere versies ineens niet meer werkt. gebruik dan liever (als je toch 'tekst' gebruikt) 'naam'. Of grijp terug op de Array structuur die ik hierboven heb gezet.

In ieder geval; graag gedaan, en leuke problemen zijn altijd welkom ;-)

latino
%Europe/Berlin %512 %2005, 13:17
echt helemaal top...ik werd helemaal gek dat ie gen var mee wilde pikken....

nu een uitdaging om dit dynamisch te maken met info uit een database

dioneo
%Europe/Berlin %530 %2005, 13:44
that's the easy part. Je kunt ze immers inladen volgens de arraystructuur die ik aangaf, en laat dat feitelijk dezelfde structuur zijn als xml-childnodes. Maar goed, databasegestuurde flash-sites zijn mijn specialiteit. zie
www.paulbloemers.nl
www.digidichter.nl
www.123flash.nl

latino
%Europe/Berlin %560 %2005, 14:27
ja maar moet dat via xml? nee toch? kan toch ook vanuit een php pagina?

toruwens er is een nieuw probleem:

mijn tooltip werkt niet naar behoren. Als ik met mijn muis over een plaatje ga zeg maar dan zie je de tooltip dubbel. Hij komt ook linksboven van de stage...zie onder

klik hier (http://www.audiovisueeladviseur.nl/v1/)

weet jij wat er fout gaat?

theFlashWizard
%Europe/Berlin %568 %2005, 14:39
zet eens een trace in de showToolTip function.. voor de onEnterFrame..
wordt hij dan wel maar 1x aangeroepe?

dioneo
%Europe/Berlin %577 %2005, 14:51
wat er fout gaat is dat je in een else-commando appels met peren vergelijkt. Uitleg:

if (_ymouse<54) {
target_mc._y = _ymouse+target_mc._height;
} else if (_ymouse>440) {
target_mc._y = _ymouse-target_mc._height;
} else if (_xmouse>600) {
// hier kom je alleen als 54<=_ymouse<=440 EN _xmouse>600
target_mc._x = _xmouse-target_mc._width-10;
} else {
// je hebt teveel waarden afgestreept, daarna gaat het hier fout
target_mc._x = _xmouse+20;
target_mc._y = _ymouse-10;
}
Simpel gezegd heb je logica geschreven als;
als een koe geen varken is
en als een koe geen paard is
en als een mens geen varken is
alleen dan kan een mens een rund zijn. :D
De laatste vergelijking heeft niets met de eerste te doen. Ofwel; je moet er twee losse checks van maken, want je wil twee waardes los van elkaar checken. dus:

// check _ymouse
if(_ymouse < 54){
target_mc._y = _ymouse + target_mc._height;
}else if(_ymouse > 440){
target_mc._y = _ymouse - target_mc._height;
} else {
target_mc._y = _ymouse - target_mc._height;
}
// einde van je _ymouse-check, met een scenario voor 54<=_ymouse<=440

// nieuwe check maar nu op _xmouse
if(_xmouse > 600){
target_mc._x = _xmouse - target_mc._width - 10;
}else{
target_mc._x = _xmouse + 20;
target_mc._y = _ymouse - 10;
}

En eigenlijk, voor het allermooiste, gebruik ik altijd relatieve zaken als

if(_xmouse>(Stage.width-target_mc._width-[naderTeBepalenZijkantBreedte])){
maar ja, dat ben ik dan weer.

dioneo
%Europe/Berlin %585 %2005, 15:03
nog ff reactie op
...geef mij maar loadmovie, maar ja dan koppelt die de events weer niet
dat klopt, maar als je er een prototype van maakt kan het allemaal weer wel.

// prototype maken
MovieClip.prototype.plaatjeTonen = function(mijnPlaatje) {
this._alpha=100
this._x=100
// ff een snel preloadclipje bovenop laden
this.createEmptyMovieClip("lBar", 99999);
with (this.lBar) {
// wat je wil doen in dit preloader-clipje
}
this.createEmptyMovieClip("holder", 1);
this.holder.loadMovie(mijnPlaatje);
this.holder._alpha = 0;
this.onEnterFrame = function() {
if (this.holder.getBytesLoaded()>1 && this.holder.getBytesLoaded()>=this.holder.getBytesTotal()) {
this.lBar.removeMovieClip();
if (this.holder._alpha<100) {
this.holder._alpha += 5;
} else {
delete this.onEnterFrame;
}
}
};
};
// en aanroepen
_root.largeImage.plaatjeTonen("plaatje9.jpg");

latino
%Europe/Berlin %600 %2005, 15:25
#the flashwizard: ja bij trace wordt ie maar 1 keer aangeroepen
#dioneo: hij doet het nog steeds :) heeft het niet met de onEnterFrame te maken? als ik die weg haal doet ie het wel (alleen volgt die tiptool dan niet mooi je muis )

prototype? wat is dat? volgens mij moet je een soort container maken met daarin een legemovie waar je de plaatjes inlaad..die legemovie wordt vervangen door een plaatje en je kan dan aan die container je events hangen..dacht ik

dioneo
%Europe/Berlin %622 %2005, 15:56
bij mij werkt deze code
var toolTips:Array = new Array();
toolTips['item0'] = "a";
toolTips['item1'] = "b";
toolTips['item2'] = "c";
toolTips['item3'] = "d";
toolTips['item4'] = "e";
toolTips['item5'] = "f";
toolTips['item6'] = "g";
toolTips['item7'] = "h";
toolTips['item8'] = "i";
var xSpacing:Number = 226;
var ySpacing:Number = 132;
var xStart:Number = 61;
var yStart:Number = 52;
var v:Number = -1;
var i:Number = -1;
while (++i<3) {
var j:Number = -1;
while (++j<3) {
++v;
var name:String = "item"+v;
mc = picsholder_mc.duplicateMovieClip(name, v);
mc._x = xStart+i*xSpacing;
mc._y = yStart+j*ySpacing;
mc.mc2 = new MovieClipLoader();
mc.mc2.onLoadInit = function(mc2:MovieClip) {
mc2.onRelease = function() {
};
mc2.onRollOver = function() {
fadeIn(mc2);
showToolTip(toolTips[this._name]);
};
mc2.onRollOut = function() {
fadeOut(mc2);
deleteToolTip();
};
};
pic = (v+1)+".jpg";
mc.mc2.loadClip(pic, "mc");
}
}
function fadeIn(bgClip) {
new mx.transitions.Tween(bgClip, "_alpha", mx.transitions.easing.None.easeNone, 30, 100, 7, false);
}
function fadeOut(bgClip) {
new mx.transitions.Tween(bgClip, "_alpha", mx.transitions.easing.None.easeNone, 100, 30, 7, false);
}
function showToolTip(tekst:String) {
attachMovie("tooltip", "target_mc", 10);
target_mc.onEnterFrame = function() {
if (_ymouse<54) {
target_mc._y = _ymouse+target_mc._height;
} else if (_ymouse>440) {
target_mc._y = _ymouse-target_mc._height;
} else {
target_mc._y = _ymouse-target_mc._height;
}
if (_xmouse>600) {
target_mc._x = _xmouse-target_mc._width-10;
} else {
target_mc._x = _xmouse+20;
target_mc._y = _ymouse-10;
}
};
target_mc.tooltip_txt.text = tekst;
}
function deleteToolTip() {
target_mc.removeMovieClip();
}

wel correct.

Een prototype is... tja letterlijk een prototype, volgens welke omschrijving nieuwe clips worden vormgegeven. Open de bijlage maar

latino
%Europe/Berlin %648 %2005, 16:33
ja precies zeg maar wat ik zei..je maakt een holder waaraan je je acties koppelt en daarin maak je een nieuwe movieclip waar je je plaatje inlaad..

ik dacht ook dat ie het deed maar als je je stage groter maakt in je testmovie zie je dat ie linkboven nog steeds verschijnt

ik wil graag de tooltips dezelfde grootte hebebn als de tekst zeg maar dus ik dacht dit te doen wat ik al eerder heb gedaan maar dat werkt niet meer...volgens mij lukt niks meer:


attachMovie("tooltip","target_mc",10);
target_mc.tooltip_txt.autoSize = "center";
var txtWidth = target_mc.tooltip_txt._width;
target_mc._width = txtWidth;
target_mc.tooltip_txt.text = tekst;

theFlashWizard
%Europe/Berlin %658 %2005, 16:48
probeer is deze volgorde:

attachMovie("tooltip","target_mc",10);
target_mc.tooltip_txt.text = tekst;
target_mc.tooltip_txt.autoSize = "center";
var txtWidth = target_mc.tooltip_txt._width;
target_mc._width = txtWidth;

want hij weet nog niet waarheen hij moet resizen als der nog geen tekst in staat ;)

dioneo
%Europe/Berlin %664 %2005, 16:57
zie bijlage.

Wat niet goed ging is dat je de clip wilde resizen, met daarin een tekstveld.
Bijgevoegde variant doet het wel. Let op wat ik heb gedaan; de achtergrond in je tooltip in drie stukken geknipt, ieder een afzonderlijke mc van gemaakt waarbij ik lijnen naar vormen heb omgezet (anders krijg je lelijke overlaps). vervolgens geef ik ieder deel zijn portie parameters als width en x mee indien nodig.

target_mc.tooltip_txt.autoSize="left";
target_mc.tooltip_txt.text = tekst;
tw=target_mc.tooltip_txt._width
target_mc.bg_rgt._x=tw+3.5
target_mc.bg_mid._width=tw

latino
%Europe/Berlin %726 %2005, 18:25
verrek.... das idd een slimme

maar die van de flashwizard deed het ook...alleen nie tbij lange tekst...
ik vind dat vreemd aangezien dit betekent dat het uitmaakt hoe groot je je tooltipje tekent..maar goed...

trouwens ik heb nog meer problemen: zal ik een nieuwe topic openen of hierin verder gaan?

theFlashWizard
%Europe/Berlin %763 %2005, 19:19
open maar n nieuwe.. anders wordt ie wel heel lang..

dioneo
%Europe/Berlin %766 %2005, 19:24
geef ff aan welk topic dat wordt dan. overigens mag je van mij best hierin verder gaan, blijft het bij elkaar. wel zo overzichtelijk.

theFlashWizard
%Europe/Berlin %781 %2005, 19:44
juist niet als het meerdere verschillende problemen zijn..

latino
%Europe/Berlin %802 %2005, 20:15
nou ok het heeft nog met de tooltip te maken

ik heb de movieclips die geladen worden in een container_mc gestopt....
als ik dus op een plaatje klik dan gaat ie naar frame 2...
ik laat de container_mc uitfaden...dat lukt allemaal...alleen krijg ik die tooltip niet weg..wat ik ook probeer hij blijft komen wat eigenlijk niet kan omdat ik de movie verwijder....

kijk zlef maar hierzo (http://www.audiovisueeladviseur.nl/v1/)

klik op de linkerboven pic

code en fla van dit moment:

theFlashWizard
%Europe/Berlin %804 %2005, 20:18
bij mij wel hoor.. als je buiten alle foto's gaat is ie gwn weg..

dioneo
%Europe/Berlin %820 %2005, 20:41
ws komt het omdat de clips met de plaatjes niet worden verwijderd. Die triggeren je tooltip. Maar daar ga ik nu niet naar kijken; wel naar de dvd cellular. Morgen misschien weer als je er niet zelf al eerder uit komt.

latino
%Europe/Berlin %854 %2005, 21:30
celluar is wel een goede film..veel plezier...

#theFlashWizard je dient eerst op een foto te klikken

theFlashWizard
%Europe/Berlin %017 %2005, 01:25
sorry :$:$ Khad ff beter moeten lezen denk ik..
maar daarom als goedmakertje ff gekeke..
je hebt een speciale container_mc gemaakt met daarin picsholder_mc's met daarin je plaatjes maar omdat de mc container_mc op frame 1 t/m 11 staat wordt de tooltip nog steeds getriggert om tevoorschein te kome omdat hij dan nog over het plaatje komt.. alleen zie je het plaatje niet.. die tween je weg geloof ik..

function getPages(page:Number){
new mx.transitions.Tween(container_mc,"_alpha", mx.transitions.easing.None.easeNone,100,0,7,false );
for(i=0;i<=8;i++){
mc = container_mc["item"+i]
delete mc.onRelease
delete mc.onRollOver
delete mc.onRollOut
}
deleteToolTip();
}

door je getPages in deze te worden de events die aan je plaatjes gekoppeld waren verwijdert..

maar nu dacht ik.. straks wil je die events weer trug hebbe zeker..
dus moet er eigenlijk zo weinig mogelijk verwijdert worde..

dus n nieuw idee:
function getPages(page:Number){
new mx.transitions.Tween(container_mc,"_alpha", mx.transitions.easing.None.easeNone,100,0,7,false );
unenabler = container_mc.attachMovie("unenabler","unenabler",1000)
unenabler._width = Stage.width
unenabler._height = Stage.height
unenabler.enabled = false

deleteToolTip();
}

hij attacht een ontzichtbare button uit de libray,
zet die over al je plaatjes heen in de groote van je stage en hoepeta alles werkt niet meer.. :P

bij een back button hoef je die nu alleen maar te verwijdere ;)

dioneo
%Europe/Berlin %336 %2005, 09:05
Werkt ongetwijfeld. Maar waarom een element introduceren alleen om acties af te vangen van een element dat je niet ziet?
Gebruik dan _visible=false
zodra de container_mc._alpha=0 hebben zet je ze uit, dan werken de mouseovers ook niet meer. Ze terug halen is dan een kwestie van
container_mc._visible=true;en weer infaden. Scheelt een element. En volgens mij is dat ook logischer, sneller en meer OOp dan flashwizzard's oplossing.
En o pde een of andere manier heb ik iets met efficiente runtime-code.

latino
%Europe/Berlin %446 %2005, 11:43
thanks voor de tips ik heb het zo opgelost:


function getPages(page:Number){
var endTween:Object = new mx.transitions.Tween(container_mc,"_alpha", mx.transitions.easing.None.easeNone,100,0,7,false) ;

endTween.onMotionFinished = function (){

container_mc._visible = false;
target_mc._visible = false;
}

}

dioneo
%Europe/Berlin %744 %2005, 18:52
idd, het is zo simpel.

latino
%Europe/Berlin %792 %2005, 20:00
nu maar hopen dat ik het bij mijn eigen site helemaal dynamisch kan maken uit de database

dioneo
%Europe/Berlin %807 %2005, 20:22
jawel, dat is heel simpel. In plaats van de verschillende arrays die je nu zelf aanmaakt loop je door de childnodes van een XML heen en push je de waardes in een array. En dat kan zelfs volledig generiek, dat je de elementomschrijving uit de nodeName haalt, en de elementwaarde uit de nodeValue.
<mijnnaam>dioneo</mijnnaam> als XML wordt in je array dan
myData[i]['mijnnaam']='dioneo';

Leuke uitdaging voor je, lijkt me

latino
%Europe/Berlin %808 %2005, 20:24
hehe ja maar ik gebruik php en een database :)

dioneo
%Europe/Berlin %386 %2005, 10:16
Maakt geen verschil, je bouwt in php een xml als datacarrier. Maar wat dat betreft volstaat een CSV ook. Dan loop je niet door de nodes heen maar splitst in flash op je delimitter.
Ik gebruik ook php en MySql, en heb volwaardige en bedrijfskritische applicaties draaien op de sterke en snelle combi flash+php+mysql.
Zo is er een schoolboekenverkoper (grote speler) die scholen hun boekenlijst voor leerlingen laat samenstellen in een van die flash-appplicaties. Grafische kwaliteit is daarbij niet de reden om te kiezen voor flash, maar de combi van een semi-statische pagina met dynamische elementen. Terwijl je een isbn-nummer intikt wordt op de achtergrond in hun eigen database gezocht of ze het artikel in het bestand hebben, dan of hun leermiddelenexpert er info over levert, en als dat ook niet zo is kijken ze onder water bij de concurrent. Je ziet het niet, maar er gebeurt heel veel onder water. Zodra je een isbn hebt ingevoerd staat er vrijwel direct leveringsinfo. De kracht zit m erin dat de combinatie der delen meer is dan de afzonderlijke delen opgeteld. Volwaardige applicaties zonder installatie-handleidingen, updates en dergelijke, overal toegankelijk en sterker dan puur php-paginas.
Het geheel draait op een webcluster van drie dedicated webservers en twee mysql-servers achter een loadbalancer, en met 20.000 bezoekers per dag op topdrukte.
Maar als je meer wilt weten over dat soort dingen is dat een ander topic, of een msn-gesprek...

latino
%Europe/Berlin %444 %2005, 11:39
Maakt geen verschil, je bouwt in php een xml als datacarrier. Maar wat dat betreft volstaat een CSV ook. Dan loop je niet door de nodes heen maar splitst in flash op je delimitter.

ik zou je graag willen toevoegen aan msn om als ik hier vragen over heb over te willen contacteren...wat is je email?

Wat ik geqoute heb ben ik nog niet in thuis namelijk(zoals wat is CSV)

trouwens ik heb de reden gevonden waarom er geen variable meegestuurd kon worden, namelijk:

ik had die movieclips die ik nu heb gemaakt(zeg image_mc) en waar ik mijn plaatjes inlaad moeten nesten in bijvoorbeeld holder_mc. De variablen moe tik dan koppelen aan de holder_mc door middel van een varaiable maken, bv holder_mc.iets

dan had je in je onLoadInit functie deze kunenn ophalen met this._parent.iets
.
want je target_mc van je onLoadInit was dan holder_mc.image_mc geweest. Op deze manier kun je dus wel variablen doorsturen. Je onRollOver en dergelijek evnts koppel je wel aan je image_mc. Als je de variablen koppelt aan die image_mc dan verwijdt de variable zodra het plaatje klaar is met laden in image_mc

edit: heb je een link naar die schoolboeken winkel?

dioneo
%Europe/Berlin %823 %2005, 20:46
contactgegevens staan in je prive-berichten

csv is een komma gescheiden bestand, zie het als een array. Niets anders dan;

naam;email;land
john;john@doe.com;uk
ella;ella@fitzgerald.com;us
mike;info@MikeRoweSoft.com;ca
jp;balk@nl.nl;nl

Meest gangbaer transportbestand voor xml, en nog steeds heel veel gebruikt omdat xml wel wordt vergeleken met een vrachtwagen om een kratje bier te vervoeren vanwege de grote overhead. Je kunt dingen er goed in gescheiden houden, maar als dat niet nodig is gebruik je csv. Zet de vier regeltjes maar s in een bestand dat je test.csv noemt en open dat in excel, dan zie je hoe het werkt.

dat ik niet scheidt met een komma (zoals de naam doet vermoeden) maar met een puntkomma is vanwege een microsofteigenaardigheidje.

wbt het niet werken van je variabelen, ik lees terug en zie mc.tekst = toolTips[v];
// nog wat code
mc.mc2.loadClip(pic,"mc");

Dat is toch wat je doet? Of zie ik het nu ff verkeerd?

latino
%Europe/Berlin %829 %2005, 20:54
nee ik doe het nu iets anders...hoe jij de oplossing hebt gegeven (heb effe geen zin om de code te gaan verbouwen zo diet ie het ook) :D

het gaat erom dat je een nestedmovieclip maakt en dus 2 movieclips hebt zeg maar.
in mijn code heb ik maar 1 movieclip die mc2 is een variable binnen mc en geen movieclip

XML lijkt mij al moeilijk die CSV is helaaml vreemd. Moet je dat dan ook echoen? dus ziets:

echo &naam;email;land&;

dioneo
%Europe/Berlin %354 %2005, 09:30
ee, als je echo &naam;email;land&; doet gaat het mis. Die ampersand ben je gewend voor flashvariabelen. Heb je niet nodig, maken de csv feitelijk corrupt.
Er van uit gaande dat je de gegevens uit de mysql-query haalt kun je deze code gebruiken;


$result=mysql_query($query) or die (mysql_error()."<br />".$query);
$printHeader=true;
while ($line = mysql_fetch_assoc($result)) {
if ($printHeader) {
echo implode(array_keys($line),';');
echo "\r\n";
$printHeader=false;
}
echo implode($line,';');
echo "\r\n";
}

Let wel op dat je niet zomaar een 'select * from' gebruikt, maar echt de velden die je wilt hebben. Dus liever een select id as Klantnummer, concat(voornaam,' ',tussenvoegsel,' ',achternaam) as Klantnaam (etc).
Mocht je niet de veldnamen mee willen nemen in je csv, zet dan vantevoren $printHeader=false;

Helemaal correct werkend is bovensaande code niet; als je resultaten terugkrijgt met een ; er in gaat dat mis, strings moet je daarom quoten. Deze code komt met klantgegevens en daar kunnen geen ; in staan.
Daarom kun je eventueel het volgende doen inplaats van de hele snelle implode;

$return='';
foreach($line as $name=>$value){
if(ctype_digit($value)===TRUE){
$return.=$value.';';
} else {
$return.='"'.$value.'";';
}
print substr($return,0,-1); // laatste puntkomma weghalen
print "\r\n"; // new line
}


Als je een xml op dezelfde wijze wilt maken gebruik dan

$result=mysql_query($query) or die (mysql_error()."<br />".$query);
echo '<?xml version="1.0" ?><myData>';
echo "\r\n";
while ($line = mysql_fetch_assoc($result)) {
echo '<record>';
echo "\r\n";
foreach($line as $key=>$value){
echo '<'.$key.'>'.utf8_encode($value).'</'.$key.'>';
echo "\r\n";
}
echo '</record>';
echo "\r\n";
}
echo '</myData>';

Hier is het helemaal belangrijk dat je goede veldnamen terugkrijgt uit je query, als je een joins uitvoert krijg je anders variabelenamen als klant.klantnaam en xml wordt niet blij van
<klant.klantnaam>dioneo</klant.klantnaam>

Maar goede queries bouwen is al een vak apart.

latino
%Europe/Berlin %346 %2005, 09:19
ok thanks maar denk dat xml dan wat beter is en makkelijker :)