View previous topic :: View next topic |
Author |
Message |
fanatic
Joined: 02 Nov 2004 Posts: 81 Location: vienna
|
Posted: 05.12.2005 00:08 Post subject: xml & action script |
|
|
muci me slijedeci problem, zasto ovo radi:
this.mcPhoto.loadMovie("image/pic.jpg");
a ovo ne:
this.mcPhoto.loadMovie(mEssayPhoto);
(mEssayPhoto = "image/pic.jpg"; - loadano iz imageData.xml)
Code: | var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function (bSuccess:Boolean):Void {
if (bSuccess) {
var xnRoot:XMLNode = this.firstChild;
mEssayTitle = xnRoot.attributes.essayTitle;
mEssayPhoto = xnRoot.attributes.essayImage;
// wtite title in text field txtEssayTitle
txtEssayTitle.text = mEssayTitle;
this.createEmptyMovieClip("mcPhoto", this.getNextHighestDepth);
mcPhoto._x = 20;
mcPhoto._y = 120;
this.mcPhoto.loadMovie(mEssayPhoto);
}
};
myXML.load("imageData.xml"); |
ako netko ima bilo kakvu ideju bio bih mu jaaaako zahvalan |
|
|
Back to top |
|
|
Tedius
Joined: 22 Dec 2003 Posts: 149 Location: Zagreb
|
Posted: 05.12.2005 00:17 Post subject: |
|
|
Napravi trace(mEssayPhoto); pa vidi je li uopce u tome stvar... |
|
|
Back to top |
|
|
fanatic
Joined: 02 Nov 2004 Posts: 81 Location: vienna
|
Posted: 05.12.2005 08:31 Post subject: |
|
|
napravio trace, mEssayPhoto se ispravno load-a iz xml file-a, na zalost fora nije u tome |
|
|
Back to top |
|
|
nemogirl
Joined: 27 Oct 2004 Posts: 386 Location: istra
|
Posted: 05.12.2005 09:57 Post subject: |
|
|
mozda glupo ali probaj:
mozda ti fale navodnici...
this.mcPhoto.loadMovie("mEssayPhoto")
ili
u xml bazi <mEssayPhoto>"image/pic.jpg"</mEssayPhoto>
|
|
|
Back to top |
|
|
fanatic
Joined: 02 Nov 2004 Posts: 81 Location: vienna
|
Posted: 05.12.2005 10:15 Post subject: |
|
|
ako stavim navodnike onda metodi kao parametar ne predajem varijablu nego string "mEssayPhoto" a to nije ono sto zelim.
a u xml file-u je atribut essayImage="images/pic.jpg"
pokusao sam i mEssayPhoto deklarirati kao string (essayImage:String = ...), bez uspjeha... |
|
|
Back to top |
|
|
fanatic
Joined: 02 Nov 2004 Posts: 81 Location: vienna
|
Posted: 05.12.2005 15:07 Post subject: |
|
|
ne pitajte zasto, ovako radi:
Code: | var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function (bSuccess:Boolean):Void {
if (bSuccess) {
var xnRoot:XMLNode = this.firstChild;
mEssayTitle = xnRoot.attributes.essayTitle;
mEssayPhoto = xnRoot.attributes.essayImage;
// wtite title in text field txtEssayTitle
txtEssayTitle.text = mEssayTitle;
// show the essay pic
_root.createEmptyMovieClip("mcEssayPhoto", 200);
mcEssayPhoto._x=20;
mcEssayPhoto._y=120;
loadMovie(mEssayPhoto,"mcEssayPhoto");
}
};
myXML.load("imageData.xml"); |
|
|
|
Back to top |
|
|
corea
Joined: 12 Jan 2004 Posts: 133 Location: zg
|
Posted: 06.12.2005 09:47 Post subject: |
|
|
Mozda je stvar u tajmingu... xml se ne loada dovoljno brzo i kod za loadanje varijable iz XML-a se izvrsi jos prije nego se ovaj stigne loadat. Probaj ih bacit na dva razlicita framea, ili stavit neku pauzu od sekunde izmedju, cisto probe radi. Tako zna bit kad loadas varijable iz TXT fajla, iako sam to radio jednom davno u Flashu 5, ali sjecam se problematike... |
|
|
Back to top |
|
|
fanatic
Joined: 02 Nov 2004 Posts: 81 Location: vienna
|
Posted: 07.12.2005 11:23 Post subject: |
|
|
yeah, mislio sam i na taj problem, preload svakako moram implementirati prije nego idem online. thx |
|
|
Back to top |
|
|
rasljenka
Joined: 14 Jan 2005 Posts: 42
|
Posted: 11.05.2006 08:21 Post subject: |
|
|
Probaj sa
this.mcPhoto.loadMovie(mEssayPhoto.toString);
ili tako ne?to
uglavnom znam da meni nije ?timalo ne?to sa tipovima varijabli
________
Jaguar R3 picture
Last edited by rasljenka on 01.02.2011 08:10; edited 1 time in total |
|
|
Back to top |
|
|
rasljenka
Joined: 14 Jan 2005 Posts: 42
|
Posted: 11.05.2006 09:01 Post subject: |
|
|
!!! ISPRAVKA !!! Sorry
onaj toString treba staviti u ActionScript codu kod povla?enja XML-a.
npr.
ili na:
var xnRoot:XMLNode = this.firstChild.toString;
ili na:
mEssayTitle = xnRoot.attributes.essayTitle.toString;
mEssayPhoto = xnRoot.attributes.essayImage.toString;
Mislim da je ovo drugo ili mo?da oboje.
Isprobaj!
________
Sakichi Toyoda
Last edited by rasljenka on 01.02.2011 08:10; edited 1 time in total |
|
|
Back to top |
|
|
attic
Joined: 23 Apr 2006 Posts: 36 Location: London (UK) / Brežice (Slo) / New Delhi (India - coming soon :)
|
Posted: 17.05.2006 15:44 Post subject: |
|
|
RAdi se o scope problemu.
Kad u prvoj verziji kreiraš this.createEmptyMovieClip() ti to zapravo radiš u XML objektu, pošto se i cijela funkcija nalazi u tom objektu. To naravno ne pali, jer XML class nema metode createEmptyMovieClip(), ni getNextHighestDepth()
U drugoj verziji ti kreiraš mc na rootu: _root.createEmptyMovieClip()
Ako želiš riješti scope problem na elegantan način, koristi Delegate class. Recimo ovako:
Code: |
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("imageData.xml");
myXML.onLoad = Delegate.create(this, ParseXML);
function ParseXML(bSuccess:Boolean):Void{
if(bSuccess){
// do something
}
}
|
Sad imaš sve u istom scope-u.
Delegate je built in class u Flash 8, za MX 2004 moraš skinut sa neta i stavit negdje u class folder. |
|
|
Back to top |
|
|
fanatic
Joined: 02 Nov 2004 Posts: 81 Location: vienna
|
Posted: 24.05.2006 10:32 Post subject: |
|
|
hey, thanks brother! jer nisam bas hard core programer tesko da bih ikada sam uocio scope problem, ali tvoje objasnjenje je jasno i logicno, a izgleda da ce mi ono pomoci da rijesim "misteriozne" probleme i u par drugih skripti. hvala! |
|
|
Back to top |
|
|
attic
Joined: 23 Apr 2006 Posts: 36 Location: London (UK) / Brežice (Slo) / New Delhi (India - coming soon :)
|
Posted: 27.05.2006 12:05 Post subject: |
|
|
Znam, scope je zajeban igrač i slabo dokumentiran. U MX 2004 čak nema Delegate classa, tek su ga stavili u 8. Na sreču, AS3 neće imat tog problema više:
Quote: |
"In ActionScript 3.0, a reference to a method automatically remembers the object instance it was extracted from; in essence, it is an automatic delegate."
|
Dakle samo:
myXML.onLoad = ParseXML; |
|
|
Back to top |
|
|
_ ewinter
Joined: 17 Jul 2005 Posts: 14
|
Posted: 27.05.2006 13:04 Post subject: |
|
|
Ako se unutar funkcija definirane na timelineu ne koristi this, scope je dotični timeline (mc). Ako se pak koristi this, onda je scope objekt kojem metoda pripada, ili opet dotični timeline ako funkcija ne pripada objektu.
Rješenje koje bih ja primjenio:
... (sve isto) ...
createEmptyMovieClip("mcEssayPhoto", getNextHighestDepth());
mcEssayPhoto._x=20;
mcEssayPhoto._y=120;
loadMovie(mEssayPhoto,"mcEssayPhoto");
...
Ovo sve radi unutar _root scopea, mada je funkcija definirana unutar XML objekta. Odnosno, ako se koristi this, koristi se scope XML objekta.
Sorry, ako ponavljam očigledno.
Pozdrav. |
|
|
Back to top |
|
|
|