12. juli 2003 - 15:52
Der er
7 kommentarer og 1 løsning
dynamisk generede movieclips med dynamisk indhold
Okay jeg har stadig problemer ;-) Jeg kan ikke få maskinen! til at lave nogle movieclips som den så fylder med indhold! Hvis jeg f.eks. laver et statisk movieclip og kalder det "print1" og så skriver print1.loadMovie(picName); så går det helt fint, - men blot jeg skriver f.eks. h="print1" og så h.loadMovie(picName) så virker det ikke... nå men jeg vil jo gerne lave mine movieclips automatisk! Jeg har følgende: MovieClip.prototype.loadjpg = function(picName, holderName) { var h = holderName this.createEmptyMovieClip(h, 1); this._visible = true; this[h].loadMovie(picName); var id = setInterval(function (mc) { if (mc[h]._width>0) { mc._alpha = 99; clearInterval(id); mc._visible = true; mc.onComplete(); } else { mc.onLoading(); } }, 80, this); }; som jeg kalder med: myPic.loadjpg(currentPicName, currentPrint); og så lige tilsidst: Hvordan giver jeg et genereret movieClip et linkage navn? I min 'drømmeverden' vil jeg gerne have følgende: jeg har et vist antal poster i min xml fil, - f.eks. 20 billed filer, - <billede>print1.jpg</billede> <billede>print2.jpg</billede> etc. Jeg vil så gerne lave det antal movieClips (i dette tilfælde 20) og loade mine billeder ind i disse movieclips. navnet på movieClipsne' skal så være print1, print2, print 3 etc og deres linkage navn skal også være print1, print2 etc Kan nogen mon hjælpe mig lidt? vh KalleBalle
Annonceindlæg fra itavis
h er jo en streng. h er IKKE stien til dit movieclip... Skal du lave det dynamisk, så skal du jo evaluere navnet om til en sti: h = "print1"; trace(typeof h); // string trace(typeof this[h]); // movieclip
men this[h] virker heller ikke....
Hvad kan der være galt med: MovieClip.prototype.loadjpg = function(picName, holderName) { var h = holderName; this.createEmptyMovieClip(h, 1); this[h].loadMovie(picName); };
Prøv: MovieClip.prototype.loadjpg = function(picName, holderName) { var h = holderName; var m = this.createEmptyMovieClip(h, 1); m.loadMovie(picName); };
Tak, - du får lige hele mit script, - det ligger i frame 1 // // // stop(); // // init arrays PageFile = new Array(); // // XMLNode.prototype.sendNodes = function(searchName, callback) { for (var i = 0; i<this.childNodes.length; i++) { var currentNode = this.childNodes[i]; if (currentNode.nodeName == searchName) { callback(currentNode); } if (currentNode.childNodes.length>0) { currentNode.sendNodes(searchName, callback); } } }; // // MovieClip.prototype.loadjpg = function(picName, holderName) { var h = holderName; var m = this.createEmptyMovieClip(h, 1); m.loadMovie(picName); /* var id = setInterval(function (mc) { if (mc[h]._width>0) { mc._alpha = 99; clearInterval(id); mc._visible = true; trace("jeg er her"); mc.onComplete(); } else { mc.onLoading(); } }, 80, this); */ }; // // var myDoc = new XML(); var myDocName = "test2.xml"; var myPic = new MovieClip(); myDoc.onLoad = checkStatus; myDoc.load(myDocName); // // function checkStatus(success) { if (success) { myDoc.sendNodes("PageFile", handlePageFile); } else { checkStatus(); } } // // function handlePageFile(node) { //trace("PageFile "+node.firstChild); PageFile.push(node.firstChild); //trace("Pagefile length= "+PageFile.length); callingMovieClipFx(); } // // function callingMovieClipFx() { i++; currentPrint = "print"+i; currentPicName = PageFile[i-1]; myPic.loadjpg(currentPicName, currentPrint); myPic.onComplete = positionIt; } // function positionIt() { this._x = 50; this._y = 50; } Der sker ikke en sk.....
og den stor xml fil ;-) <Post> <PageFile>print1.jpg</PageFile> <PageFile>print2.jpg</PageFile> <PageFile>print3.jpg</PageFile> </Post>
okay nu virker det: function callingMovieClipFx() { i++; currentPrint = "print"+i; currentPicName = PageFile[i-1]; if (!picLoaded) { this.createEmptyMovieClip("myPic", 1); myPic.onComplete = setIt; myPic.loadjpg(currentPicName); } else { myPic._visible = true; } } // // function setIt() { this._x = 29; this._y = 31; picLoaded = true; }
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.