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 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序