image removeChildAt Sprite,图片不显示了

tcmis 2011-05-31 06:37:36
问题描述:
因为图片的属性是需要调整的,有可能是剪切图片,有可能是置顶等,所以image上面蒙层的字需要更新,所以我在添加Sprite对象的时候,先判断一下,是否存在,如果存在,那么先删除,然后再添加,但是加上后,图片无法显示,请高手赐教,如何实现。

代码:

<mx:Image horizontalAlign="center" id="image" creationComplete="imageComplete()"
width="100%" height="100%" />



private function imageComplete(): void{
if (this.data.isntCutImage == "Y" || this.data.isntTop == "Y" || this.data.isntCover == "Y"){
var _text:TextField = new TextField();
if (this.data.isntCutImage == "Y"){
_text.text = "剪切图片";
}

if (this.data.isntTop == "Y"){
_text.text = "置顶图片";
}

if (this.data.isntCover == "Y"){
_text.text = "封面图片";
}

var _sprite:Sprite = new Sprite();
_sprite.graphics.beginFill(0xffffff, 0.7);

_text.width = image.width;
var textFormat:TextFormat = new TextFormat();
textFormat.bold = true;
textFormat.italic = true;
textFormat.color = "#ff0000";
textFormat.align = "center";
textFormat.size = 13;
_text.setTextFormat(textFormat);
_sprite.graphics.drawRect(0, 0, image.width, 24);
_sprite.graphics.endFill();
_sprite.addChild(_text);
// 我想先判断一下,image时候有子对象,有的话就先删除,我用下面的方法去删除,加上这段代码后,image就不显示图片了,
if (DisplayObjectContainer(image).numChildren > 0){
image.removeChildAt(0);
}
image.source = this.data.furl;
this.image.addChild(_sprite);
}
}
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmis 2011-06-06
  • 打赏
  • 举报
回复
这个我自己也解决了, 可以参照一下这个贴子http://topic.csdn.net/u/20110605/22/bbff3505-2f49-4c0a-820b-54187f208a35.html
就知道原因了,所以改成下面的就可以了。

if (DisplayObjectContainer(image).numChildren > 1){
image.removeChildAt(1);
}

因为image如果加载了图片,那么他的numChildren的值就是1了,如果你再在image上添加Sprite,那么他的索引值就是2了,那么你removeChildAt(0),就会把image的数据源给清除,所以图片就不显示,所以你想移除image的Sprite索引值就的从1开始。

tcmis 2011-06-02
  • 打赏
  • 举报
回复
图片是能显示,加上
// 我想先判断一下,image时候有子对象,有的话就先删除,我用下面的方法去删除,加上这段代码后,image就不显示图片了,
if (DisplayObjectContainer(image).numChildren > 0){
image.removeChildAt(0);
}

就显示不了了。
kojie_chen 2011-06-01
  • 打赏
  • 举报
回复
image.source = this.data.furl;
不就是赋值吗?如果furl有路径,存在图片,应该是能显示的。我本地上
this.data.isntCutImage ="Y";
this.data.isntTop ="Y";
this.data.isntCover ="Y";
this.data.furl = "res/logo.png"; 是能显示的
kojie_chen 2011-06-01
  • 打赏
  • 举报
回复
我这里 按照你的图片是能看到的。。
tcmis 2011-06-01
  • 打赏
  • 举报
回复
image可以添加sprite。。
kojie_chen 2011-06-01
  • 打赏
  • 举报
回复
能往image 里面添加sprite吗,不太清楚,只是觉得,应该向sprite 里面添加图片吧 imges 上面 盖着一层 sprite ,你能看到图片么?还有 Image 算是容器吗?

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧