[Flash] Ładowanie plików txt


(master of disaster) #1

Witam!

Mam skrypt AS do losowego, dynamicznego ładowania obrazków do flasha :

tablica = Array('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg');

	ktory = "mc";

	potrzebny = true;

	function zmien() {

		if (ktory == "mc") {

			ktory = "mc2";

		} else {

			ktory = "mc";

		}

	}

	function losuj() {

		liczba = int(Math.random()*5);

		while (liczba == temp) {

			liczba = int(Math.random()*5);

		}

	}

	function wczytaj() {

		loadMovie(tablica[liczba], ktory);

		czas = getTimer();

		temp = liczba;

	}

	function pokaz() {

		setProperty(ktory, _alpha, "100");

		zmien();

		setProperty(ktory, _alpha, "0");

	}

	losuj();

	wczytaj();

klip.onEnterFrame = function() {

	if ((eval(ktory).getBytesLoaded()/eval(ktory).getBytesTotal()==1)&&(potrzebny==true)) {

		losuj();

		zmien();

		wczytaj();

		potrzebny = false;

	}

	if (czas+10000
		pokaz();

		potrzebny = true;

	}

};

I teraz potrzebuje aby każdy obrazek miał pole tekstowe do którego będę mógł ładować dane z plików txt.

Jak załadować pliki txt do flasha wiem, ale nie wiem jak zrobić by dynamicznie się to zmieniało wraz ze zmianą obrazka.

Pozdrawiam


(Mateuszsobieski) #2

Tak szczerze, to nie wiem, ale możesz zrobić obrazki z tekstem, na przeźroczystym tle.


(master of disaster) #3

Widzę, że dopiero zaczynasz na forum, ale gdy nie wiesz to nie pisz, bo mi chodzi o coś całkiem innego robione we flashu przeczytaj pierwszy post :slight_smile:

Ale dzięki za próbę :stuck_out_tongue:

Pozdrawiam


(Marek Ciarkowski) #4

czeknij to

System.security.allowDomain("http://www.studio-roger.pl/");

var my_fmt:TextFormat = new TextFormat();

my_fmt.color = 0xFFFFFF;

my_fmt.align = "center";

my_fmt.size = 32;


var tab:Array = Array();

tab[0] = {foto:"http://www.studio-roger.pl/galerie/ponidzie/foto_10.jpg", link:"http://www.wp.pl/", tresc:"qweqweq"};

tab[1] = {foto:"http://www.studio-roger.pl/galerie/ponidzie/foto_10.jpg", link:"http://www.onet.pl/", tresc:"fgdhdfghfgh"};

tab[2] = {foto:"http://www.studio-roger.pl/galerie/ponidzie/foto_10.jpg", link:"http://www.wp.pl/", tresc:"xvbcxvbxcvb"};

for (var i:Number = 0; i<=2; i++) {

	this.createEmptyMovieClip("image_mc"+i,i);

	dupa(i);

}


function dupa(i) {

	var mclListener:Object = new Object();

	mclListener.onLoadInit = function(target_mc:MovieClip) {

		target_mc.createTextField("foto_opis",1,0,target_mc._height-20,target_mc._width,45);

		target_mc.foto_opis.text = tab[i]["tresc"];

		target_mc.foto_opis.backgroundColor = 0x666666;

		target_mc.foto_opis.background = !target_mc.foto_opis.background;

		target_mc.foto_opis.setTextFormat(my_fmt);

		target_mc._x = 260*i;

		target_mc._width = 250;

		target_mc._yscale = target_mc._xscale;

	};

	var image_mcl:MovieClipLoader = new MovieClipLoader();

	image_mcl.addListener(mclListener);

	image_mcl.loadClip(tab[i]["foto"],"image_mc"+i);

}

po wklejeniu będzie działać


(master of disaster) #5

Dzięki. :slight_smile:

tylko że ten skrypt nie do końca działa tak jak trzeba, po pierwsze nie ma pokazu slajdów tylko jest coś takiego:

asfasfasd.png

Po 2 ja to robię na projket , tak że chciałbym aby wszystko było "automatyczne" i żeby ktoś nie musiał włączać flasha aby to edytować. :slight_smile:

W ogóle to chciałbym zrobić to w xml tak jak jest simpleviewer ale nie umiem :(.

Anyway dzięki i proszę o pomoc :slight_smile:

Pozdrawiam


(Marek Ciarkowski) #6

Dobra więc XML najłatwiej przeczytać w ten sposób

var myXML:XML = new XML();

myXML.ignoreWhite = true;

myXML.onLoad = function(success) {

	var init:Object = new Object();

	if (success) {

		var wiersze = this.firstChild;

		var propNode = wiersze.firstChild;

		var odstepY:Number = 25;

		var i:Number = 0;

		while (propNode) {

			i++;

			var nodeName:String = propNode.nodeName;

			var nodeValue:String = propNode.attributes.fr;

			init.ODC = i;

			init.FR = propNode.attributes.fr;

			init.PL = propNode.attributes.pl;

			kontener.attachMovie("wiersz","wiersz"+i,i,init);

			eval(kontener+".wiersz"+i)._y = -20+odstepY*(i+1);

			propNode = propNode.nextSibling;

		}

	} else {

		init.ODC = "";

		init.FR = "Błąd aplikacji - odśwież stronę";

		init.PL = "";

		kontener.attachMovie("wiersz","wiersz",i,init);

	}

	SCROLL();

};

myXML.load("plik.xml");

a sam plik XML może wyglądać tak

<?xml version="1.0" encoding="utf-8"?>

przeanalizuj sobie powiązania, zamień sobie np init.FR = propNode.attributes.fr;

na

trace(propNode.attributes.fr)

i zobacz efekt :wink:


(master of disaster) #7

hmm dziwne nic mi się nie pokazuje na scenie ;/


(Marek Ciarkowski) #8

Bo tam jest kilka zbędnych wpisów to raz a dwa nie na scenie tylko w oknie output będziesz miał wartości a jak to podepniesz to już Twoja sprawa :wink:

[edit]

wklej tak jak jest do nowego pliku flash i xml to zadziała