Link to home
Start Free TrialLog in
Avatar of kingkev83
kingkev83

asked on

XML IMAGE IN A TEXT NODE

HI GUYS,

I am developing a flash quiz using XML. I am stuck because i need to insert a small image into the question line between text for a question. Is there a way to do this in the node used for the question.
I have another node for a question image but it is not in the line it is seperate. i need this image to display in the line.

any ideas??

please see xml code - i have marked in the question node where i need the image to go..



XML Code
<item><!-- Q3 -->
<sectiontitle>GCSE (Ordinary) Course Section 1: Transformations</sectiontitle>
<question>The triangle ABC with vertices A(1, - 2),  B(3, - 6) and C(- 4, - 5) is enlarged, using scale factor - image to go here-->><img src="Question3/Q3.jpg"/> and centre the origin (0, 0).<question> 
<feedback>For question three, this is the feedback</feedback>
<image></image>
<Qtype>Image</Qtype>
<answer>Question3/A1.jpg</answer>
<answer>Question3/A2.jpg</answer>   
<answer correct="y">Question3/A3.jpg</answer>
<answer>Question3/A4.jpg</answer>     
</item>

Open in new window

Avatar of bluefezteam
bluefezteam

Are you saying that you want an image as part of your questions text?
So in the paragraph of text that is the question, there's an image?

If so you can set the textfield that holds the question as a HTML textfield and use the <img src="image.jpg"/> in your question. SO your question would be one long string with the img tag used.
Avatar of kingkev83

ASKER

I've tried that as you can see from my xml statement, but it only displays in the dynamic textbox if i hardcode it into flash ie.
actionscript:
 my_text.htmlText = currentQuizItem.getQuestion() + " <img src='Question3/Q3.jpg'/>";

i need it to actually read from XML but it just shows a blank and any text after it is missing when it runs

XML code:
  <question>The triangle ABC with vertices A(1, - 2),  B(3, - 6) and C(- 4, - 5) is enlarged, using scale factor -<img src="Question3/Q3.jpg"/> and centre the origin (0, 0). </question>

in flash the question shows until "factor - " then its blank

hmm maybe the "" around the image tag are confusing flash when loading through xml? It's reading it in as a variable rather than a string.

Have you tried single quote ''

also needs to be exported as flash 7 or above if that helps for IMG to work ina  text field
perhaps URL encode? %22 = "
It doesn't like the < ive tried CDATA and using &lt = < but it does not want to show anything past it. it will show " though
OK i got it working by using <lt as "<" and &gt as ">" , it returns the line before the image but at lease it shows up where i want it as the following text is displayed after the image.

Next thing is that as you said to show these images i have to use Flash 7 or above, i just realised i was using flash 6 before and now the answer images wont come over in the array in flash.. the code works great in vers 6 but in 7 the code must be different. the Question, Sectiontitle, feedback comes over ok but the Qtype and Images fail

 can you help..

Actionscript:
function onQuizData(success) {
	var quizNode = this.firstChild;
	var quizTitleNode = quizNode.childNodes[0];
	title = quizTitleNode.firstChild.nodeValue;
	var i = 0;
	// <items> follows <title>
	var itemsNode = quizNode.childNodes[1];
	while (itemsNode.childNodes[i]) {
		var itemNode = itemsNode.childNodes[i];
		// <item> consists of  <question> and one or more <answer>
		// <question> always comes before <answer>s (node 0 of <item>)
		var SectionTitleNode = itemNode.childNodes[0];
		var questionNode = itemNode.childNodes[1];
		// <feedback>
		var feedbackNode = itemNode.childNodes[2];
		//<Image>
		var imageNode = itemNode.childNodes[3];
		//QuestionType
		var QtypeNode = itemNode.childNodes[4];
		
		quizItems[i] = new QuizItem(SectionTitleNode.firstChild.nodeValue, questionNode.firstChild.nodeValue, feedbackNode.firstChild.nodeValue, imageNode.firstChild.nodeValue, QTypeNode.firstChild.nodeValue);
		var a = 5;
		;
		// <answer> follows <question>
		var answerNode = itemNode.childNodes[a++];
		while (answerNode) {
			var isCorrectAnswer = false;
			if (answerNode.attributes.correct == "y") {
				isCorrectAnswer = true;
			}
			quizItems[i].addAnswer(answerNode.firstChild.nodeValue,isCorrectAnswer);
			// goto the next <answer>
			answerNode = itemNode.childNodes[a++];
		trace(answerNode[i]);
		}
		i++;
 
XML:
<item><!-- Q3 -->
<sectiontitle>GCSE (Ordinary) Course Section 1: Transformations</sectiontitle>
        <question>The triangle ABC with vertices A(1, - 2),  B(3, - 6) and C(- 4, - 5) is enlarged, using scale factor &lt;img src="Question3/Q3.jpg" align="absmiddle"/&gt; 
  and centre the origin (0, 0). </question>
        <feedback>For question three, this is the feedback</feedback>
        <image></image>
        <Qtype>Image</Qtype>
        <answer>Question3/A1.jpg</answer>
        <answer>Question3/A2.jpg</answer>   
        <answer correct="y">Question3/A3.jpg</answer>
        <answer>Question3/A4.jpg</answer>     
        </item>

Open in new window

can you post the fla file - you may have to rename the extension to .jpg to allow it to be loaded into this system.

I'll have a look at it over the weekend, and hopefully be able to assist a bit.
hi bluefezteam, please see attached my fla file and xml file, This code works with flash 6 settings but when i use flash 7 the images for the answers don't appear except for the image in the Question textbox, i have renamed the files so they can be uploded.
GCSEOrdFreeTestXML.zip
ok just downloaded it - will see what I can do.
did you get anywhere with that
ASKER CERTIFIED SOLUTION
Avatar of kingkev83
kingkev83

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial