cloo6131 2011-01-24 17:51
浏览 238
已采纳

flex4效果的一个奇怪现象

   先说一下我这个是做什么的,这个效果是鼠标移到隐藏显示面板,本来显示的,就应该隐藏起来,像姓名,职业那些就隐藏起来了,只会显示“隐藏显示”,如果我鼠标再移上去的话,那些姓名,职业又可以滑下来显示了

   今天发现了一个问题,

看图:

1.初始状态

 

 

2.鼠标点上去

 

 

 

这里,大家可以看到,出现了一个问题,我鼠标移上去,理应那些姓名等等的应该隐藏起来,可是现在就好像是浮在页面最表层,隐藏不了

但是,当我双击浏览器,阿门出现了,上图,

 

图3:

 

 

 

却可以显示出我要的效果了,我很奇怪,flex4的bug吗?

 


问题补充
smithfox 写道
从现象上看应该是 "双击浏览器" 触发了resize事件后,再次触发commitproperties或是updateDisplayList, 得以更新.

必须上代码, 才能看出问题



其实就是对image组件的rollOut、rollOver这2个事件的捕捉,
通过includeLayout、Move来完成这个效果,但是就是会出现那个问题

问题补充
smithfox 写道
整个过Move过程, 都是浮在上面的吗?
父容器是什么?
你设置这个includeLayout是动态设置还是, 直接在mxml就设置好了?

别人不知道具体代码,真的无法看出问题. 你说是吧




父容器就用了BorderContainer,里面有一个Image对象 ,这里不用includeLayout了,直接设置y坐标的值,来改变位置

O(∩_∩)O~,贴出一部分代码,你帮我瞧瞧,

 

  
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        <s:Bounce id="bounceEasing"/>
        <s:Elastic id="elasticEasing"/>
        <s:Move id="movein" yTo="0" duration="500" easer="{bounceEasing}"/>
        <s:Move id="moveout" yTo="-235" duration="500" easer="{elasticEasing}"/>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.effects.easing.Bounce;
            private function rolloverHandler():void{
                if(img.y==-235)
                    movein.play([img]);
            }
            private function rolloutHandler():void{
                if(img.y==0)
                    moveout.play([img]);
            }
        ]]>
    </fx:Script>

    <s:BorderContainer id="box2"
            height="100%" 
            width="100%"
            backgroundColor="#cccccc"
            borderAlpha="1" 
            borderStyle="solid"
            cornerRadius="9"
            dropShadowVisible="false"
            >
        
        <s:layout>
            <s:BasicLayout/> 
        </s:layout>
    
        <mx:Image 
            id="img" buttonMode="true" 
            source="@Embed('assets/img/弹出框.png')" y="-235"
            rollOut="rolloutHandler()"
            rollOver="rolloverHandler()"/>
    </s:BorderContainer>

问题补充
smithfox 写道
<s:layout><s:BasicLayout clipAndEnableScrolling="true" /></s:layout>


加了这个属性,没有那个问题了

自己一直对这个属性视而不见,

clipAndEnableScrolling属性:
  设置为false,即如果子组件的大小大于容器,那子组件将越过容器边界显视
  设置为true,即超出容器部份将不显视

 

 

谢谢smithfox!

 

  • 写回答

3条回答 默认 最新

  • iteye_13980 2011-01-24 17:51
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误