re: mcmester21
Sikerült megoldani. Ebbe a forrásba importáltam az swf-em.
http://reghellin.com/milkbox/
Sajna ez is csak magánfelhasználásra van.
re: mcmester21
Sikerült megoldani. Ebbe a forrásba importáltam az swf-em.
http://reghellin.com/milkbox/
Sajna ez is csak magánfelhasználásra van.
re: balta
Igen, ez a neve, csak nem tudtam, de nem találok kódot hozzá. Olyat keresek ami szabadon használható akárkinek. Nem tud valaki egy tutorialt vagy egy kódot?
re: mcmester21
lightbox ?
re: mcmester21
Sikerült egy kódot találnom html-be:
<script language="javascript" type="text/javascript">
function hidediv() {
document.getElementById('hideShow').style.display = 'none';
}
function showdiv() {
document.getElementById('hideShow').style.display = 'inline';
}
</script>
</head>
<body>
<div id="hideShow" style="display: none;">
<embed src="japan.swf" width="100%" height="100%" align="middle" quality="high"
</div>
<a href="hidediv();">eltüntet</a>
<a href="showdiv();">megjelenít</a>
</body>
</html>Viszont nekem, egy előugró ablak szerü kellene, ami nem változtat a honlapon semmit, szóval a háttérbe minden ugyanugy marad. A flashbe beirtam egy kilépő kódot:
exit.addEventListener(MouseEvent.CLICK, closeApp); function closeApp(event:MouseEvent):void { fscommand("quit"); }
Viszont ezzel nem lép ki a honlapra vissza. Valaki tudna egy kis infót adni?
Szeretnék egy AS3-as flash animációt berakni egy honlapra olyan módon, hogy a honlapon lesz egy gomb és ha rákattintok bejönne a flash egy bizonyos méretben, viszont a flashbe van egy kikapcsolás gomb amivel ki tudok lépni a flashböl és visszajön a honlap. A flash kilépő gomb megvan, csak azt nem tudom, hogy a honlapon milyen kód kell ehez. Tudok segiteni?
Heló, egy as2-ben írt swf, be tud tölteni és futtatni egy as3-as swf-et?
re: Genin
A második lehetőség nekem is eszembe jutott, csak gondoltam hátha van egy elegánsabb megoldás. Megnézem swfobjecttel, aztán eldöntöm, hogy melyik megoldásnál maradok. Egyébként röhej, hogy nincs egy ilyen funkció a flashben, na mindegy :).
Köszi a segítséget!
re: Suszi
swfobjectnél az expressinstall valahogy lekérdi ;)
itt meg tudod nézni a kódot: http://code.google.com/p/swfobject/downloads/list
a másik ami eszembe jutott, hogy simán kiolvasod az adobe oldaláról, hogy mit írnak ki, pl:
var request:URLRequest = new URLRequest("http://www.adobe.com/products/flashplayer/features/"); var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, result); loader.load(request); function result(event:Event):void{ var str:String = event.currentTarget.data; var a:Array = str.split("<a href="/go/getflash">Download Flash Player "); if(a.length){ a = a[1].split(" now</a>"); var version:Number = new Number(a[0]); if(version){ trace("az elérhető legfrissebb flash player verziószáma: " + version); }else{ trace("nem sikerült kinyerni a verziószámot :("); } }else{ trace("nem sikerült kinyerni a verziószámot :("); } }
Azt nem tudjátok véletlenül, hogy flashben le lehet e kérni valahogy a hivatalos legfrissebb flash player verzió számot? Tehát nem arra vagyok kíváncsi, ami nekem telepítve van, hanem amit kiadtak, hogy mi az utolsó.
Már mindenhol néztem, ami eszembe jutott, de nem találtam meg, lehet nincs is.
re: Ted
ez az Arthur Debert ( http://www.stimuli.com.br/trane/tags/bulk-loader/ ) "féle" BulkLoader ( http://code.google.com/p/bulk-loader/ )?
annak van levelező listája, stb., ott már nézted, vagy nem?
bocsánat, ha túl kézenfekvő dolgot írtam, de sokszor nem látja az ember a fától az erdőt, legalábbis velem gyakran megtörténik,
re: Genin
lehet, hogy nem pontosan fogalmaztam - jobb lett volna az "ennyi trigonometrikus" helyett "annyi trigonometrikus"-t írni -, de nem azt írtam, hogy nem "kell" trigonometrikus kifejezéseket (szögfüggvényeket) használni;
az látttam/látom, hogy az adott pont körüli elforgatás képletét használjátok, ami valamilyen módon tetszik is, hiszen "nem foglalkozik" azzal, hogy körről van szó (hogy egy kört közelítünk), de pont emiatt nem tetszik, mert a "speciális" eset (kör adott pontjának a meghatározása adott szög "mellett") egy ismertebb képlettel számolható, mindegy is...
viszont a "a te példáidban a két szélső esetnél nem működik túl jól a felosztás, hiszen nagyon kicsi körnél szögletes lesz, nagyon nagynál pedig túl részletes. am szerintem nem éri meg bajlódni vele, nem nyersz annyit ;)" megjegyzésedet nem értem;
lehet, hogy nem voltam egyértelmű, de pont arra akartam utalni, hogy én anno a sugár értékét is figyelembe véve határoztam meg a lépésszámot (hiszen a húrok hosszát stb. vettem figyelembe), de lássuk a kódokat (az eredeti tortaszelethez):
function torta1(s:Sprite, cx:Number, cy:Number, r:Number, a1:Number, a2:Number, h:Number = 5) { a1 *= Math.PI / 180; a2 *= Math.PI / 180; var n:Number = Math.floor(1 + r * (a2 - a1) / h); // húrhossz alapján számolás s.graphics.moveTo(cx, cy); for (var i:int = 0; i <= n; ++i) { var a:Number = a1 + (a2 - a1) * i / n; var nx:Number = cx + r * Math.cos(a); var ny:Number = cy - r * Math.sin(a); s.graphics.lineTo(nx, ny); } s.graphics.lineTo(cx, cy); } function torta2(s:Sprite, cx:Number, cy:Number, r:Number, a1:Number, a2:Number, d:Number = 1) { a1 *= Math.PI / 180; a2 *= Math.PI / 180; var n:Number = Math.floor(1 + (a2 - a1) / (2 * Math.acos(1 - d / r))); // húrtávolság alapján s.graphics.moveTo(cx, cy); for (var i:int = 0; i <= n; ++i) { var a:Number = a1 + (a2 - a1) * i / n; var nx:Number = cx + r * Math.cos(a); var ny:Number = cy - r * Math.sin(a); s.graphics.lineTo(nx, ny); } s.graphics.lineTo(cx, cy); }
mondjuk én eleve abból indultam ki, hogy a szelet nem feltétlenül 0 foknál indul (ezért van hozzá két paraméter: "a1" és "a2") és hagyományos sodrási irányt veszem (ezért "tükrözöm" az "ny" értékeket),
az is igaz, hogy a torta1-nél valójában nem a húrhosszból indulok ki, hanem a körív hosszából,
továbbá ezek csak "vázlatok", semmilyen ellenőrzés nincs az aktuális paraméterekre (h aktuális értéke <= 0, vagy esetleg nagyobb, mint a sugár, stb.)
az is igaz, hogy ha animálni kell, akkor lehet, hogy célszerű a közelítés pontjait olyan képlettel számolni, hogy fixen maradjanak, ellenben zavaró lehet a körvonal "zizegése", ha nem elég nagy a felosztás,
továbbá nyilván benne van a függvényeimben az a hiba is, hogy "lokálisan" számol (tfh. egy tortaszeletet a torta1 hívásával rajzoltatok ki h=5 értékkel, ha az adott Sprite-ot 10-szeresére nagyítom, akkor az megfelel annak, mintha h=50 értékkel közelítettem volna, aminél már szinte biztos, hogy látszik a "közelítés"),
bár ezt írtam: "nekem a fokonkénti léptetés sem tetszik", (amit olyan szempontból tartok is, hogy tetszőleges sugárra ugyanazt a felosztást vetted alapul, és ez szerintem nem jó, bár erre írtad "kitalálhatsz valami elvet, ami szerint dinamikusan változik") igazából más közelítési módokra szerettem volna felhívni a figyelmet,
ps. az is lehet, hogy nem is jól számolok (még anno Flash MX(6) alatt követtem el a fenti kódokat, csak most átírtam őket AS3-ra, és most nem gondoltam teljesen végig a számolást)
Sziasztok!
Másnak a kódjával kell dolgoznom és teljesen elakadtam. Van egy BulkLoader nevű osztályom, ami az EventDispatcher-ből származtatja magát és van egy privát(-tá változtatott) isPaused változója, ami boolean, alapból true.
Van ezen kívül a mozim, ami betölt egy konfigurációs fájlt és az alapján még egy rakás továbbit, mozit, mindenfélét. Többek között egy json fájlt is be kéne tölteni, de nem megy. Van egy külön függvénye a mozi osztályának, ami ezt végezné. Elvileg külön létrehozza a BulkLoadert lokálisként, de a nyomkövetés kedvéért az osztály változójává tettem assetLoader néven. A betöltést végző függvény így néz ki:
protected function _loadAssets() : void { var _loc_x:String = null; assetLoader.addEventListener(BulkProgressEvent.PROGRESS, _broadcastProgress, false, 0, true); assetLoader.addEventListener(Event.COMPLETE, _broadcastComplete, false, 0, true); assetLoader.logLevel = BulkLoader.LOG_ERRORS; if (_loaderContext == null) { _loaderContext = new LoaderContext(); } for (_loc_x in _configClass["assets"]) { assetLoader.add(_configClass["assets"][_loc_x], {id:_loc_x, loaderContext:_loaderContext}); } assetLoader.start(); return; }
Na most az érdekesség az, hogy assetLoader.start(); után az isPaused értéke false lesz, de következő onEnterFrame-ben már true. Mint említettem, a változó privát, a BulkLoader összes függvényét trace-elem, ami hozzányúl az isPaused értékhez, de nem hívódik meg semmi. Van valakinek ötlete, hogy merre tovább?
Előre is hálás köszönet már a végigolvasásért is!
Sziasztok!
Segítséget szeretnék kérni: hang(mp3) lejátszás, localhost-on működik, ha viszont feltöltöm a tárhelyemre nem töltődik be az mp3. Mi lehet az oka? Előre is köszönöm.
HttpFox hibaüzenet
00:36:44.295 0.027 411 491 GET 404 text/html (NS_ERROR_FAILURE) http://www.galedi.hu/sound/SoundLoop.mp3
re: szbzs
amit te írsz az is trigonometria, lényegében az elforgatási mátrixot írtad egy speciális esetre (amikor y = 0) persze abban igazad van, hogy ez a helyzet most is fenn áll, bevallom ilyen szempontból nem néztem most a kódot, csak kopiztam a ciklust, de akkor szépen :D
function rotTorta(s:Sprite, u:Number, v:Number, r:Number, deg:Number){ s.graphics.moveTo(u, v); s.graphics.lineTo(u+r, v); for(var i:uint = 1; i < deg+1; i++){ var rad:Number = i * Math.PI / 180; var px:Number = r * Math.cos(rad) + u; var py:Number = r * Math.sin(rad) + v; s.graphics.lineTo(px, py); } s.graphics.lineTo(u, v); } a fokonkénti léptetés lényegében a felbontása a szeletnek. ezt meghatározhatod fixre, vagy kitalálhatsz valami elvet, ami szerint dinamikusan változik. igazából ez már ízlés dolga (gyorsítani a kódot mindkét esetben tudom). a te példáidban a két szélső esetnél nem működik túl jól a felosztás, hiszen nagyon kicsi körnél szögletes lesz, nagyon nagynál pedig túl részletes. am szerintem nem éri meg bajlódni vele, nem nyersz annyit ;)
re: szbzs
ha van jobb/hatekonyabb modszered, ne tartogasd ! :)
re: szbzs
Elmeletileg egyetlen ivvel is meg lehet rajzolni de a multkori beszelgetesnel(en sem talaltam) kiderult, hogy az a modszer nem eleg pontos. Ez csak akkor latszodott igazan, amikor animaltuk a szelet novekedeset fokonkent.
A modszer hatekonysagarol nem tudok nyilatkozni. Nyilvan valamivel hatekonyabb egy ivet szamolni es renderelni, mint egy for ciklusban tobbszor. Az biztos, hogy ez pontosabb.
re: Genin
valamit nem egészen értek (próbáltam rákeresni a "tortaszelet" kifejezésre, hátha a balta által utalt hozzászólásokat elolvasva "megvilágosodom", de nem leltem), szóval miért használtok ennyi trigonometrikus kifejezést a ciklus(ok)ban?
miért nem a jól ismert: x = r * cos(a); y = r * sin(a); képleteket használjátok?
vagyis azt használjátok, mert ugye-e a ciklusban:
px - u == r; py - v == 0; stb.
lehet, hogy a lejátszó optimalizál, de ami szerintem fontosabb: most feleslegesen(?) el van bonyolítva a kód, "olvashatatlanabb";
mondjuk nekem a fokonkénti léptetés sem tetszik, de ez az én bajom (amikor hasonlót kódoltam, akkor nekem a következő lehetőségek jutottak eszembe, vagyis ezeket próbáltam ki: adott ívhosszú közelítés (azaz egy kívánt/adott maximális húrhosszból számoltam ki a szükséges lépések számát), a másik ötletem pedig az ideális (kör)ívtől vett húrtávolság alapján számolt (azt a minimális lépésszámot határoztam meg, amelynél a húrok távolsága az adott húrhoz tartozó körívtől egy adott értéknél kisebbnek adódott),
szerkesztve: nem kötekedni akarok, de tényleg nem értem mi az oka a szerintem felesleges "bonyolításnak",
re: Genin
Koszi !
A ket tortaszelet nekem is megvolt, de ha korvanalt is akarok, akkor nem az igazi. Az kulon jo, hogy meg ertem is mit csinaltam rosszul. Ezer hala!
re: balta
a legegyszerűbb két torta szeletet egymásra rajzolni ;)
de megoldható külön ring fv-el is:
function ring(s:Sprite, u:Number, v:Number, rb:Number, rk:Number, deg:Number){ var sxb:Number = u+rb; var syb:Number = v; var sxk:Number = u+rk; var syk:Number = v; var rad:Number var px:Number; var py:Number; var i:uint; s.graphics.moveTo(sxb, syb); s.graphics.lineTo(sxk, syk); for(i = 1; i < deg+1; i++){ rad = i * Math.PI / 180; px = (sxk - u) * Math.cos(rad) - (syk - v) * Math.sin(rad) + u; py = (sxk - u) * Math.sin(rad) + (syk - v) * Math.cos(rad) + v; s.graphics.lineTo(px, py); } rad = deg * Math.PI / 180; px = (sxb - u) * Math.cos(rad) - (syb - v) * Math.sin(rad) + u; py = (sxb - u) * Math.sin(rad) + (syb - v) * Math.cos(rad) + v; s.graphics.lineTo(px, py); for(i = deg-1; i > 0; i--){ rad = i * Math.PI / 180; px = (sxb - u) * Math.cos(rad) - (syb - v) * Math.sin(rad) + u; py = (sxb - u) * Math.sin(rad) + (syb - v) * Math.cos(rad) + v; s.graphics.lineTo(px, py); } } function torta(s:Sprite, u:Number, v:Number, r:Number, deg:Number){ var px:Number = u+r; var py:Number = v; s.graphics.moveTo(u, v); s.graphics.lineTo(px, py); for(var i:uint = 1; i < deg+1; i++){ var rad:Number = i * Math.PI / 180; var px2:Number = (px - u) * Math.cos(rad) - (py - v) * Math.sin(rad) + u; var py2:Number = (px - u) * Math.sin(rad) + (py - v) * Math.cos(rad) + v; s.graphics.lineTo(px2, py2); } s.graphics.lineTo(u, v); } var sp:Sprite = new Sprite(); sp.graphics.lineStyle(0,0x000000,0); sp.graphics.beginFill(0xFF0000,1); torta(sp, 100, 100, 100, 90); torta(sp, 100, 100, 80, 90); sp.graphics.endFill(); sp.graphics.beginFill(0x00FF00,1); ring(sp, 300, 100, 80, 100, 90); sp.graphics.endFill(); addChild(sp);
Hello!
A multkor dumaltunk itt a tortaszelet rajzolasrol. Vegul valaki belinkelt egy jo fuggvenyt, ezt szeretnem most ugy modositani, hogy gyurut is tudjak rajzolni. Mondanom sem kell, hogy nem igazan sikerul. :)
Arra gondoltam hogy a kulso iv utan rajzolom meg a masik vonalat es a kissebbik ivet de ez nem igazan megy.
Barmi otlet ?
az eredeti fuggveny:
function torta(s:Sprite, u:Number, v:Number, r:Number, deg:Number){ var px:Number = u+r; var py:Number = v; s.graphics.moveTo(u, v); s.graphics.lineTo(px, py); for(var i:uint = 1; i < deg+1; i++){ var rad:Number = i * Math.PI / 180; var px2:Number = (px - u) * Math.cos(rad) - (py - v) * Math.sin(rad) + u; var py2:Number = (px - u) * Math.sin(rad) + (py - v) * Math.cos(rad) + v; s.graphics.lineTo(px2, py2); } s.graphics.lineTo(u, v); }
Kösözönöm a segítséget Genin!
re: gabor66
az értéket szépen ki is olvasod, és el is mented ennél a sornál:
"imageHolder.link = imagelink[i];"
azt nem értem, akkor miért nem arra hivatkozol? ;)
így jó lesz:
"navigateToURL(new URLRequest(e.target.link));"
ps: persze átírhatod azt is, amikor elmented az értéket az mc-be linkTo-ra így: "imageHolder.linkTo = imagelink[i];"
a lényeg, hogy ugyanarra hivatkozzál, mint amibe bemented az értéket, vagyis lehetne akár "ruhacsipesz" is, csak akkor mind a két helyre azt írjad ;)
re: vizoli
Köszönöm, ezt én is észrevettem. A kérdésem az lenne, hogyan tudom módosítani az itemClicked függvényt illetve a teljes kódot, hogy ki tudjam olvasni az XML-ben lévő <ilink> értékét?
re: gabor66
Ott kezdodnek a bajok, hogy nincs linkTo tulajdonsaga az e.target-nek..oszinten szolva sehol mashol nincs senkinek se :)
Sziasztok!
Elakadtam AS3-ban. Találtam a neten egy remek XML menüt. Minden remekül működik, csak nem hajlandó az ItemClicked-nél ugrani, próbáltam átírni nem de nem sikerült, igazából elég lenne, ha csak kitudnám olvasni a clicked eseménynél az aktuális menühöz tartozó <ilink> értékét.
Előre is köszönöm.
gabor66
Itt található az AS3 kód:
//We use 70x70 sized images (change this if different for your images) const IMAGE_WIDTH:uint = 70; const IMAGE_HEIGHT:uint = 70; var imgurl:URLRequest = new URLRequest(); var loadedimgs:uint = 0; var images_num = 0; var imageHolders:Array = new Array(); var menu_num:String = ""; //Set the focal length var focalLength:Number = 500; //Set the vanishing point var vanishingPointX:Number = stage.stageWidth / 2; var vanishingPointY:Number = stage.stageHeight / 4; //The 3D floor for the images var floor:Number = 100; //We calculate the angleSpeed in the ENTER_FRAME listener var angleSpeed:Number = 0; //Radius of the circle var radius:Number = 250; var xmlLoader:URLLoader = new URLLoader(); var xmlData:XML = new XML(); xmlLoader.load(new URLRequest("carousel.xml")); xmlLoader.addEventListener(Event.COMPLETE, LoadXML); function LoadXML(e:Event):void { xmlData = new XML(e.target.data); //trace(xmlData); Parseimage(xmlData); } function Parseimage(imageinput:XML):void { var imageurl:XMLList = imageinput.image.iurl; var imagelink:XMLList = imageinput.image.ilink; images_num = imageurl.length(); for (var i:int = 0; i < images_num; i++) { var urlElement:XML = imageurl[i]; var linkElement:XML = imagelink[i]; var imageHolder:MovieClip = new MovieClip(); var imageLoader = new Loader(); imageHolder.addChild(imageLoader); imageHolder.mouseChildren = false; imageLoader.x = - (IMAGE_WIDTH / 2); imageLoader.y = - (IMAGE_HEIGHT / 2); imageHolder.link = imagelink[i]; imageHolders.push(imageHolder); imgurl.url = imageurl[i]; imageLoader.load(imgurl); imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); } } function imageLoaded(e:Event):void { //Update the number of loaded images loadedimgs++; //trace("loadedimgs: " + loadedimgs); //Set the bitmap smoothing to true for the image (we know that the loader's content is a bitmap). e.target.content.smoothing = true; //Check to see if this is the last image loaded if (loadedimgs == images_num) { //trace("done"); //Set up the carousel initializeCarousel(); } } //This function is called when all the images have been loaded. //Now we are ready to create the 3D carousel. function initializeCarousel():void { //Calculate the angle difference between the images (in radians) var angleDifference:Number = Math.PI * (360 / images_num) / 180; //Loop through the images for (var i:uint = 0; i < imageHolders.length; i++) { //Assign the imageHolder to a local variable var imageHolder:MovieClip = (MovieClip)(imageHolders[i]); //Get the angle for the image (we space the images evenly) var startingAngle:Number = angleDifference * i; //Position the imageHolder imageHolder.xpos3D = radius * Math.cos(startingAngle); imageHolder.zpos3D = radius * Math.sin(startingAngle); imageHolder.ypos3D = floor; //Set a "currentAngle" attribute for the imageHolder imageHolder.currentAngle = startingAngle; //Calculate the scale ratio for the imageHolder (the further the image -> the smaller the scale) var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D); //Scale the imageHolder according to the scale ratio imageHolder.scaleX = imageHolder.scaleY = scaleRatio; //Set the alpha for the imageHolder imageHolder.alpha = 0.3; //We want to know when the mouse is over and out of the imageHolder imageHolder.addEventListener(MouseEvent.MOUSE_OVER, mouseOverImage); imageHolder.addEventListener(MouseEvent.MOUSE_OUT, mouseOutImage); //We also want to listen for the clicks; imageHolder.addEventListener(MouseEvent.CLICK, imageClicked); //Position the imageHolder to the stage (from 3D to 2D coordinates); imageHolder.x = vanishingPointX + imageHolder.xpos3D * scaleRatio; imageHolder.y = vanishingPointY + imageHolder.ypos3D * scaleRatio; //Add the imageHolder to the stage addChild(imageHolder); } //Add an ENTER_FRAME for the rotation addEventListener(Event.ENTER_FRAME, rotateCarousel); } function rotateCarousel(e:Event):void { //Calculate the angleSpeed according to mouse position angleSpeed = (mouseX - vanishingPointX) / 4096; //Loop through the images for (var i:uint = 0; i < imageHolders.length; i++) { //Assign the imageHolder to a local variable var imageHolder:MovieClip = (MovieClip)(imageHolders[i]); //Update the imageHolder's current angle imageHolder.currentAngle += angleSpeed; //Set a new 3D position for the imageHolder imageHolder.xpos3D = radius * Math.cos(imageHolder.currentAngle); imageHolder.zpos3D = radius * Math.sin(imageHolder.currentAngle); //Calculate a scale ratio var scaleRatio = focalLength/(focalLength + imageHolder.zpos3D); //Scale the imageHolder according to the scale ratio imageHolder.scaleX = imageHolder.scaleY = scaleRatio; //Update the imageHolder's coordinates imageHolder.x = vanishingPointX + imageHolder.xpos3D * scaleRatio; imageHolder.y = vanishingPointY + imageHolder.ypos3D * scaleRatio; } //Call the function that sorts the images so they overlap each others correctly sortZ(); } //This function sorts the images so they overlap each others correctly function sortZ():void { //Sort the array so that the image which has the highest //z position (= furthest away) is first in the array imageHolders.sortOn("zpos3D", Array.NUMERIC | Array.DESCENDING); //Set new child indexes for the images; for (var i:uint = 0; i < imageHolders.length; i++) { setChildIndex(imageHolders[i], i); } } //This function is called when the mouse is over an imageHolder function mouseOverImage(e:Event):void { //Set alpha to 1 e.target.alpha = 1; } //This function is called when the mouse is out of an imageHolder function mouseOutImage(e:Event):void { //Set alpha to 0.3 e.target.alpha = 0.3; } //This function is called when an imageHolder is clicked function imageClicked(e:Event):void { ////Navigate to the URL that is in the "linkTo" variable navigateToURL(new URLRequest(e.target.linkTo)); }
Az XML file tartalma:
<?xml version="1.0" encoding="iso-8859-1"?>
<carousel>
<image>
<iurl>programok.png</iurl>
<ilink>1</ilink>
</image>
<image>
<iurl>itallap.png</iurl>
<ilink>2</ilink>
</image>
<image>
<iurl>galeria.png</iurl>
<ilink>3</ilink>
</image>
<image>
<iurl>djk.png</iurl>
<ilink>4</ilink>
</image>
</carousel>
Zárolt topik, további üzenetek írása nem lehetséges.