Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ddlightw

Dados xml duplicados na exibição

Recommended Posts

Olá, eu peguei um trabalho já começado e foi utilizado o template Flashmo, ele utiliza xml e tem uma área de conteudo com mascara e barra de rolagem.

 

O estranho é que os dados do xml aparecem duas vezes, como se fossem dois items e no xml só tem um.

 

O código do XML é esse:

 

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

<items>

<item>

<content><![CDATA[<span class="title">Titulo</span>

<p>Texto editável.</p>

 

<p align="justify"></p> ]]></content>

</item>

</items>

 

Entendo pouco de XML no flash, tentei colocar lista (ul, li) só que não funcionou. Isso é do XML ou é do carregamento no flash?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha tem muito código e esse template eu recebi modificado, acredito que esses trechos sejam importantes:

 

Action da página carregada:

stop();
flashmo_pages.gotoAndStop(page);

stage.addChild(btn_return);
stage.addChild(flashmo_pages);
stage.addChild(flashmo_content_area);

Tweener.addTween( flashmo_content_area, { alpha: 0, time: 0.5, 
				  transition: "easeOutSine",  onComplete: remove_cover } );

function remove_cover():void
{
	flashmo_content_area.y = -2000;
}

btn_return.alpha = 0;
btn_return.visible = true;
btn_return.buttonMode = true;
btn_return.addEventListener( Event.ENTER_FRAME, return_enter );
btn_return.addEventListener( MouseEvent.ROLL_OVER, return_over );
btn_return.addEventListener( MouseEvent.ROLL_OUT, return_out );
btn_return.addEventListener( MouseEvent.CLICK, return_to_menu );

function return_to_menu( me:MouseEvent ):void
{
	play();
	btn_return.removeEventListener( MouseEvent.CLICK, return_to_menu );
}

function return_over(e:MouseEvent):void
{
	e.target.over = true;
}

function return_out(e:MouseEvent):void
{
	e.target.over = false;
}

function return_enter(e:Event):void
{
	var mc = e.target;
	
	if( mc.over == true )
		mc.nextFrame();
	else
		mc.prevFrame();
}

Tweener.addTween( btn_return, { alpha: 1, time: 0.5, delay: 0.5, transition: "easeOutSine" } );



código do movieclip que armazena o XML:

var css_file:String = "flashmo_220_style.css";
var flashmo_item_list = new Array();
var flashmo_item_group:MovieClip = new MovieClip();
var item_width:Number = flashmo_mask.width;
var item_height:Number = 0;
var item_spacing:Number = 20;
var item_padding:Number = 20;
var i:Number;
var total:Number;

var flashmo_xml:XML = new XML();
var flashmo_style:StyleSheet = new StyleSheet();
var css_loader:URLLoader = new URLLoader();

function push_array(e:Event):void 
{
	flashmo_xml = XML(e.target.data);
	total = flashmo_xml.item.length();
	for( i = 0; i < total; i++ )
	{
		flashmo_item_list.push( { content: flashmo_xml.item[i].content.toString() } );
	}
	load_css();
}

function load_xml(xml_file:String):void
{
	var xml_loader:URLLoader = new URLLoader();
	xml_loader.load( new URLRequest( xml_file ) );
	xml_loader.addEventListener(Event.COMPLETE, push_array);
}

function load_css():void
{
	css_loader.load( new URLRequest(css_file) );
	css_loader.addEventListener(Event.COMPLETE, css_complete);
}

function css_complete(e:Event):void 
{
	var css_format:TextFormat = new TextFormat();
	flashmo_style.parseCSS(css_loader.data);
	create_item_list();
}

function create_item_list():void
{
	for( i = 0; i < total; i++ )
	{
		var flashmo_item = new MovieClip();
		flashmo_item.addChild( create_item_desc( flashmo_item_list[i].content ) );
		flashmo_item.addChildAt( create_item_bg( flashmo_item.height, i ), 0 );
		flashmo_item.y = item_height;
		item_height += flashmo_item.height + item_spacing;
		flashmo_item_group.addChild( flashmo_item );
	}
	
	this.addChild( flashmo_item_group );
	flashmo_item_group.mask = flashmo_mask; 
	flashmo_sb.scrolling("flashmo_item_group", "flashmo_mask", 0.40);	// ScrollBar Added
}

function create_item_bg( h:Number, item_no:Number )
{
	var fm_rect:Shape = new Shape();
	fm_rect.graphics.beginFill(0xFFFFFF, 1);	// ITEM BACKGROUND COLOR
	fm_rect.graphics.drawRoundRect(0, 0, item_width, h + item_padding * 2, 0);
	fm_rect.graphics.endFill();
	return fm_rect;
}

function create_item_desc( item_desc:String )
{
	var fm_text = new TextField();
	fm_text.x = item_padding;
	fm_text.y = item_padding;
	fm_text.width = item_width - item_padding * 2;
	fm_text.styleSheet = flashmo_style;
	fm_text.htmlText = item_desc;
	fm_text.multiline = true;
	fm_text.wordWrap = true;
	fm_text.selectable = true;
	fm_text.autoSize = TextFieldAutoSize.LEFT;
	return fm_text;
}


Tem outro como content2, não entendi porque tem dois:

var css_file:String = "flashmo_220_style.css";
var flashmo_item_list = new Array();
var flashmo_item_group:MovieClip = new MovieClip();
var item_width:Number = flashmo_mask.width;
var item_height:Number = 0;
var item_spacing:Number = 20;
var item_padding:Number = 20;
var i:Number;
var total:Number;

var flashmo_xml:XML = new XML();
var flashmo_style:StyleSheet = new StyleSheet();
var css_loader:URLLoader = new URLLoader();

function push_array(e:Event):void 
{
	flashmo_xml = XML(e.target.data);
	total = flashmo_xml.item.length();
	for( i = 0; i < total; i++ )
	{
		flashmo_item_list.push( { content: flashmo_xml.item[i].content.toString() } );
	}
	load_css();
}

function load_xml(xml_file:String):void
{
	var xml_loader:URLLoader = new URLLoader();
	xml_loader.load( new URLRequest( xml_file ) );
	xml_loader.addEventListener(Event.COMPLETE, push_array);
}

function load_css():void
{
	css_loader.load( new URLRequest(css_file) );
	css_loader.addEventListener(Event.COMPLETE, css_complete);
}

function css_complete(e:Event):void 
{
	var css_format:TextFormat = new TextFormat();
	flashmo_style.parseCSS(css_loader.data);
	create_item_list();
}

function create_item_list():void
{
	for( i = 0; i < total; i++ )
	{
		var flashmo_item = new MovieClip();
		flashmo_item.addChild( create_item_desc( flashmo_item_list[i].content ) );
		flashmo_item.addChildAt( create_item_bg( flashmo_item.height, i ), 0 );
		flashmo_item.y = item_height;
		item_height += flashmo_item.height + item_spacing;
		flashmo_item_group.addChild( flashmo_item );
	}
	
	this.addChild( flashmo_item_group );
	flashmo_item_group.mask = flashmo_mask; 
	flashmo_sb.scrolling("flashmo_item_group", "flashmo_mask", 0.40);	// ScrollBar Added
}

function create_item_bg( h:Number, item_no:Number )
{
	var fm_rect:Shape = new Shape();
	fm_rect.graphics.beginFill(0xFFFFFF, 1);	// ITEM BACKGROUND COLOR
	fm_rect.graphics.drawRoundRect(0, 0, item_width, h + item_padding * 2, 0);
	fm_rect.graphics.endFill();
	return fm_rect;
}

function create_item_desc( item_desc:String )
{
	var fm_text = new TextField();
	fm_text.x = item_padding;
	fm_text.y = item_padding;
	fm_text.width = item_width - item_padding * 2;
	fm_text.styleSheet = flashmo_style;
	fm_text.htmlText = item_desc;
	fm_text.multiline = true;
	fm_text.wordWrap = true;
	fm_text.selectable = true;
	fm_text.autoSize = TextFieldAutoSize.LEFT;
	return fm_text;
}

Esse erro não acntece toda hora, ele acontece quando a página carrega no IE e quando atualiza a página de novo o erro desaparece.

 

Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.