Galera consegui fazer, mas estou com mais um problema, o tamanho da imagem.
As imagens deve variar de tamanho, mas o Canvas muda mas a imagem interna,
não. Esse é o código que ficou:
package br.com.viafacil
{
import mx.containers.Canvas;
import mx.controls.Image;
public class IconMapArray extends Canvas
{
[Embed(source="../../../../assets/icones/verde_000_ativo.swf")]
private var verde_000_ativo: Class;
[Embed(source="../../../../assets/icones/verm_000_ativo.swf")]
private var verm_000_ativo: Class;
private var _width:Number;
private var _height:Number;
private var _imgGreen:Image = new Image;
private var _imgRed:Image = new Image;
public function IconMapArray()
{
//TODO: implement function
super();
_imgGreen.source = verde_000_ativo;
_imgGreen.scaleContent = true;
_imgRed.source = verm_000_ativo;
this.addChild(_imgGreen);
this.addChild(_imgRed);
}
override public function get width():Number
{
return _width;
}
override public function set width(value:Number):void
{
_width = value;
super.width = this.width;
var child:Array = this.getChildren();
for(var i:int = 0;i < child.length; ++i) {
if(this.getChildAt(i) is Image) {
Image(this.getChildAt(i)).width = this.width;
} else {
this.getChildAt(i).width = this.width;
}
}
}
}
}
2008/5/20 Fabio Aguiar <[EMAIL PROTECTED]>:
> blz, vou tentar
>
>
> 2008/5/20 Rafael Gomes Dantas <[EMAIL PROTECTED]>:
>
>> Faz assim então:
>>
>> public class Nome extends Canvas {
>> private var _dataProvider:Array = new Array();
>>
>> public function set dataProvider(sourceList:Array):void
>> {
>> this._dataProvider = sourceList;
>>
>> /* alguma lógica para adicionar os sources como "new Images" e
>> pra remover aqueles que não existem no novo provider */
>>
>> }
>> }
>>
>> 2008/5/20 Fabio Aguiar <[EMAIL PROTECTED]>:
>>
>>> o problema é que vou criar várias imagens como essa com várias
>>> combinações diferentes, na verdade podem ter umas 30 combinações diferentes,
>>> por isso acho mais fácil criar um componente e abrir várias instancias
>>> quando carregar a aplicação.
>>>
>>> Talvez eu esteja extendendo o controle errado, poderia ser uma canvas, da
>>> forma que você mostrou abaixo, mas como eu faria isso?
>>>
>>> Obrigado
>>>
>>> 2008/5/20 Rafael Gomes Dantas <[EMAIL PROTECTED]>:
>>>
>>> É uma idéia interessante, mas acho mais fácil você criar dois componentes
>>>> images e posicionar eles dentro de um canvas envelope.
>>>>
>>>> <mx:Canvas>
>>>> <mx:Image source="src1" x="0" y="0"/>
>>>> <mx:Image source="src2" x="0" y="0"/>
>>>> </mx:Canvas>
>>>>
>>>> 2008/5/20 Fabio Aguiar <[EMAIL PROTECTED]>:
>>>>
>>>> Bom dia pessoal, preciso extender um controle de imagem para mostrar
>>>>> duas imagens distintas uma sobre a outra, por exemplo, tenho várias
>>>>> imagens,
>>>>> metade verde, metade vermelha. As duas imagens tem o mesmo tamanho e deve
>>>>> ser combinadas como ativo, inativo, etc. Então preciso carregar duas
>>>>> imagens
>>>>> num mesmo source. Alguem sabe como fazer isso?
>>>>>
>>>>> Segue trecho do código:
>>>>>
>>>>> package br.com.viafacil
>>>>> {
>>>>> import mx.controls.Image;
>>>>>
>>>>> public class IconMap extends Image
>>>>> {
>>>>> private var _source:Object;
>>>>>
>>>>> [Embed(source="/assets/icones/verde_000_ativo.swf")]
>>>>> private var verde_000_ativo: Class;
>>>>> [Embed(source="/assets/icones/verm_000_ativo.swf")]
>>>>> private var verm_000_ativo: Class;
>>>>>
>>>>> public function IconMap()
>>>>> {
>>>>> super();
>>>>> switch(_imgType) {
>>>>> case 0:
>>>>> this.source=verde_000_ativo;
>>>>> break;
>>>>> }
>>>>> }
>>>>>
>>>>> private var _imgType:Number = 0;
>>>>>
>>>>> public function set ImageType(value:Number):void {
>>>>> _imgType = value;
>>>>> }
>>>>>
>>>>> public function get ImageType():Number {
>>>>> return _imgType;
>>>>> }
>>>>>
>>>>> }
>>>>>
>>>>> --
>>>>> Fabio Aguiar
>>>>> AguiarTech Consultoria
>>>>> [EMAIL PROTECTED]
>>>>> Não colabore com Spammers, ao encaminhar suas mensagens, apague os
>>>>> endereços de email do corpo da mensagem e encaminhe com cópia oculta
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Fabio Aguiar
>>> AguiarTech Consultoria
>>> [EMAIL PROTECTED]
>>> Não colabore com Spammers, ao encaminhar suas mensagens, apague os
>>> endereços de email do corpo da mensagem e encaminhe com cópia oculta
>>>
>>>
>>
>> >>
>>
>
>
> --
> Fabio Aguiar
> AguiarTech Consultoria
> [EMAIL PROTECTED]
> Não colabore com Spammers, ao encaminhar suas mensagens, apague os
> endereços de email do corpo da mensagem e encaminhe com cópia oculta
>
--
Fabio Aguiar
AguiarTech Consultoria
[EMAIL PROTECTED]
Não colabore com Spammers, ao encaminhar suas mensagens, apague os endereços
de email do corpo da mensagem e encaminhe com cópia oculta
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---