Pergunta

Estou tentando carregar uma imagem no flex (AS3) que já existe:

<mx:Image id="Img"/>

Com este código:

Img.load('http://www.path.com/image.jpg');

O caminho é verificado para funcionar, mas eu sempre recebo este erro: TypeError: Erro #1009: Não é possível acessar uma propriedade ou método de uma referência de objeto nulo.

Usei o código da documentação e ainda recebi esse erro!

Foi útil?

Solução

Com a sua resposta da imagem em um filho escondido de um visualizador, isso muda a natureza do seu problema do ponto de vista de outras pessoas. Na verdade, você pode acessar os itens nas crianças daquele viewstack sem torná -los visíveis, alterando a CreationPolicy do ViewStack para "All".

Outras dicas

Ao usar uma tag mx.image, tente usar img.source = "http://path.com/image.jpg"; Img.load (); caso contrário, você pode precisar configurá -lo como um urlRequest; as referências de objetos nulas são bastante comuns e podem vir de vários VARs diferentes que você está tentando acessar antes que estejam prontos. Certifique -se de que você não está tentando acessar o IMG antes que o aplicativo Flex esteja pronto. No seu código, na primeira linha de mxml em que você define seu documento, verifique se há um CreationComplete = "init ()" // ou Qualquer que seja a sua função inicial e atribua a fonte IMG dentro dessa função. Isso garante que, como VARs, não estão tentando acessar qualquer coisa definida no MXML que ainda não esteja pronta/

Quando você está chamando a função? E embora não seja uma prática padrão chamar o método de carga em um controle de imagem (definir sua propriedade de origem é mais comum), isso deve ficar bem:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="onInitialize()">

    <mx:Script>
        <![CDATA[

            private function onInitialize():void
            {
                Img.load("http://turbonerd.com/media/images/roaming/o/20100203192528.jpg");
            }

        ]]>
    </mx:Script>

    <mx:Image id="Img" />

</mx:Application>

Isso importa quando você chama esse método; Se você está obtendo uma referência nula nessa linha específica, o controle de imagem definitivamente não está lá.

Certifique -se de esperar pelo menos até que o evento inicialize do contêiner incêndio (como acima) antes de tentar acessar o controle no código. Se você está adicionando o controle dinamicamente em tempo de execução, deve esperar até Control's Inicialize o evento, para ter certeza de que há um objeto para trabalhar.

Ok, o problema era que o componente da imagem foi colocado em uma tela que estava em uma visão de pilha e, aparentemente, você não pode acessar esses elementos enquanto essa tela é invisível

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top