Também to me batendo com isso...
Beck esses tempos atráz vc me passou um link c/ a sua palestra sobre a
criacao de components, ajudou bastante a criar esse itemRenderer para
meu projeto:
package views
{
import flash.geom.Rectangle;
import mx.core.IDataRenderer;
import mx.core.UIComponent;
import mx.controls.listClasses.IListItemRenderer;
import flash.display.DisplayObjectContainer;
import flash.events.Event;
import mx.managers.ISystemManager;
import flash.display.Sprite;
import flash.display.DisplayObject;
import mx.events.FlexEvent;
import mx.controls.Button;
import mx.containers.HBox;
import mx.controls.Label;
import flash.text.TextField;
[Event(name="dataChange", type="mx.events.FlexEvent")]
public class LoaderRenderer extends UIComponent implements
IDataRenderer, IListItemRenderer
{
private var _data : Object = null;
private var imgContainer:Sprite;
private var tamanho_txt:TextField;
public function LoaderRenderer()
{
super();
this.width = 160;
this.height = 120;
}
[Bindable("dataChange")]
public function get data():Object
{
return _data;
}
public function set data(value:Object):void
{
_data = value;
invalidateProperties();
dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}
override protected function createChildren():void {
super.createChildren();
if(!imgContainer){
imgContainer = new Sprite();
imgContainer.x += 2;
addChild(imgContainer);
}
if(!compContainer){
var compContainer:HBox = new HBox();
compContainer.x += 2;
}
if(!tamanho_txt){
tamanho_txt = new TextField();
tamanho_txt.x += 5;
tamanho_txt.selectable = false;
tamanho_txt.textColor = 0xFFFF00;
addChild(tamanho_txt);
}
}
override protected function commitProperties():void
{
super.commitProperties();
if (_data != null)
{
imgContainer.addChild(_data.image);
tamanho_txt.text = _data.tamanho;
}
}
/* override protected function updateDisplayList(w:Number,
h:Number):void
{
super.updateDisplayList(w, h);
if (_data != null)
{
imgContainer.addChild(_data.image);
tamanho_txt.text = _data.tamanho;
}
} */
}
}
Mas ele ta tendo uns problemas na renderizacao que faz dias q eu to
mexendo e n consigo solucionar... olhei esses links q vc passou na
documentacao tb, mas n consegui resolver
Pra entender deve-se utilizar a aplicacao, vc da play no video e
captura algumas miniaturas, depois arrasta elas do tilelist pro list
abaixo (ambos usam o mesmo itemrenderer) e envia pro servidor.
http://www.rlog.com.br/capture/capture.html ( o codigo fonte est
disponivel c/ o botao direito )
Bom tudo ta quase tudo funcionando, mas da uns paus e a imagem some se
vc comecar a arrastar o item e soltar sem completar o drag and drop...
quando mexe na barra de rolagem as imagens voltam a aparecer...
Tem esses 2 trechos no meu codigo:
override protected function commitProperties():void
{
super.commitProperties();
if (_data != null)
{
imgContainer.addChild(_data.image);
tamanho_txt.text = _data.tamanho;
}
}
/* override protected function updateDisplayList(w:Number,
h:Number):void
{
super.updateDisplayList(w, h);
if (_data != null)
{
imgContainer.addChild(_data.image);
tamanho_txt.text = _data.tamanho;
}
} */
se eu usar o primeiro (commitProperties) fica como está, se eu
comentar ele e usar o segundo (updateDisplayList) o problema
desaparece, mas so aparece a imagem depois da segunda captura... n sei
mais o que fazer.
Se puder me dar uma luz agradeco
[ ] 's
Ricardo
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---