Ir para conteúdo

POWERED BY:

Arquivado

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

gustavod

Flash + XML não abre "_self"

Recommended Posts

Olá pessoal,

 

estou com um problema em um arquivo flash AS2 alimentado por XML. É um menu vertical que não consigo fazer com que as seções abram na mesma janela "_self". Tentei várias coisas, inclusive getURL, mas mesmo assim ele continua abrindo as seções do menu em nova janela.

 

 

ALGUÉM PODE ME AJUDAR? AGRADEÇO MUITO. QUEBREI A CABEÇA O DIA TODO E AINDA NÃO SAÍ DO LUGAR.

 

 

OBRIGADO.

 

Aí vai um parte do código AS. O restante é inclusão de outras variáveis.

var accordion = this

var itemList = []


var xmlSource:XML = new XML
xmlSource.onload = function(success:Boolean):Void  {
        
        if (success) {
    xmlRoot = xmlSource.firstChild
                
                xmlItems = xmlRoot.childNodes
                
                total = xmlItems.length
                
                for (i=0; i<total; i++){
        
                        accordion.attachMovie("item", "item" + i, i)
        
                        itemList[i] = accordion["item"+i]
                        
                        itemList[i].xmlRoot = xmlItems[i]
                        
                        itemList[i].separation = separation
                        
                        itemList[i].tabulation = tabulation
                        
                        itemList[i].subItemAutoClose = subItemAutoClose
                        
                        itemList[i].itemHeight = itemHeight
                        
                        itemList[i].itemWidth = itemWidth
                        
                        itemList[i].light = light
                        
                        itemList[i].buttonColor = buttonColor
                        
                        itemList[i].rollOverColor = rollOverColor
                        
                        itemList[i].arrowColor = arrowColor
                        
                        itemList[i].rollOverArrowColor = rollOverArrowColor
                        
                        itemList[i].TextColor = TextColor
                        
                        itemList[i].rollOverText = rollOverText
                        
                        itemList[i].openEase = openEase
                        
                        itemList[i].closeEase = closeEase
                        
                        itemList[i].rollOutFade = rollOutFade
                        
                        itemList[i].openAll = openAll
                        
                }               

        }
        
}

xmlSource.ignoreWhite = true;
xmlSource.load("accordion.xml");

this.onEnterFrame=function(){
        
        for (i=1; i<total; i++){
                
                itemList[i]._y = itemList[i-1]._y + itemList[i-1].mask._height + itemList[i-1].button._height + separation
                
        }
        cursor._x = _xmouse
        cursor._y = _ymouse
        
}

onmousedown = function (){
        
        for (i=0; i<total; i++){
                
                if (itemList[i].button.hitTest(cursor)){
                
                        showCurrent(itemList[i])

                }
                                
        }
        
}

showCurrent=function(current){
        
        for (i=0; i<total; i++){
                
                if (itemList[i]!=current){
                        
                        if (autoClose){
                                
                                itemList[i].openBox=false
                        
                                itemList[i].over = false
                                
                        }
                
                } else {
                        
                        if (total>0){
                
                                if (itemList[i].openBox){
                
                                        itemList[i].openBox=false
                
                                } else {
                
                                        itemList[i].openBox=true
                
                                }
                        } else {
                
                                getURL(xmlRoot.attributes.url, _self);
                
                        }
                }
        }

}

 

E aí vai o código XML

<?xml version="1.0" encoding="UTF-8" ?>
<accodion>


        <item name="HOME" url="http://www.google.com/" target="_self">


        </item>
</accodion>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente a propriedade correta é "_self" e não _self

Depois, alguns browsers não permitem que você faça isso com o flash... algum bug, as vezes da certo as vezes não.

 

Para corrigir isso você pode alterar as propriedades do object que carrega o flash no HTML.

 

Sugiro, para não ter esse problema utilizar o SWFObject, que ai ele já configura certinho para você.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Thiago,

 

 

obrigado pela resposta. Passei a usar o SWFObject para carregar o menu flash, mas mesmo assim continua abrindo em nova janela. Será que tenho que colocar algum parâmetro no código abaixo? Ou a solução é no ActionScript mesmo?

 

<p id="banner">
	  <param name="wmode" value="transparent"> 
	  <script type="text/javascript">
		var so = new SWFObject('accordion4.swf', 'DEMO', '245', '450', '9', '#ffffff');
		so.addParam('menu', 'false');
		so.addParam('quality', 'high');
		so.addParam('wmode', 'transparent');
		so.write('banner');
	</script>
</p>

Abraços

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.