posts - 32, comments - 59, trackbacks - 0, articles - 2
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

 

/* 描述:用Flash做帮助内容,演示一个流程,所以选择Tree组件显示所有的步骤,在演示中,需要做到:按照swf播放的内容,自动调整Tree中被选中的node,同时要调整滚动条的位置(如果有的话),另外Tree中的所有节点是可以随时被点击的,点击后跳到相关位置
*/

System.useCodepage 
=   true ;
//
//
 XML相关变量定义
var  node_xml:XML  =   new  XML();
node_xml.ignoreWhite 
=   true ;
var  childNode:XMLNode;
//  定义消息监听对象
var  evt_listen:Object  =   new  Object();
evt_listen.change 
=   function (evt_obj:Object)
{
    childNode 
=  evt_obj.target.selectedItem;
    _root.gotoAndPlay(childNode.attributes.data);
}
;
//  定义XML文件载入处理函数
node_xml.onLoad  =   function (success)
{
    
if  (success)
    
{
        
//  设置Tree组件和XML文件的关联
        navigate_tree.dataProvider  =  node_xml;
        
//  设置Tree组件的外观
        navigate_tree.setSize( 170 550 );
        
//  显示水平滚动条
        navigate_tree.hScrollPolicy  =   " on " ;
        
//  设置水平滚动条的最大值
        navigate_tree.maxHPosition  =   50 ;
        
//  设置第一个节点
        childNode  =  navigate_tree.getTreeNodeAt( 0 );
    }

        
else
        
{
           
//  给出提示
         }

}
;
//  定义Tree组件节点的展开、选中函数
//
 函数名    :    expandTree
//
 参数        :    无
//
 返回值    :    Void
//
 作用        :    根据Flash播放的内容,选中树型控件中的节点,如果被选中节点含有子节点,则展开它,如果到了最后一个节点,则返回到第一个节点
//
function  expandTree():Void
{
    
//  选中节点
    navigate_tree.selectedNode  =  childNode;
    
//  设置水平滚动条的滚动位置
     if (childNode.attributes.hPosition  !=  undefined)
    
{
        navigate_tree.hPosition 
=  Number(childNode.attributes.hPosition);
    }

    
//  如果当前选中节点有子节点则展开它,并把下一个要选中的节点设置为当前节点的第一个子节点
     if  (childNode.hasChildNodes())
    
{
        navigate_tree.setIsOpen(childNode, 
true true );
        childNode 
=  childNode.firstChild;
    }

    
else
    
{
        
//  如果当前节点没有子节点,则设置下一个节点为同级节点中的下一个节点
         if  (childNode.nextSibling  !=   null )
        
{
            childNode 
=  childNode.nextSibling;
        }

        
else
        
{
            
//  如果当前节点没有同级的下一个节点,则查找父级节点的下一个节点
             while  (childNode.parentNode  !=   null )
            
{
                childNode 
=  childNode.parentNode;
                
if  (childNode.nextSibling  !=   null )
                
{
                    childNode 
=  childNode.nextSibling;
                    
break ;
                }

            }

            
//  如果已经到整个节点树的最后一个节点,则把下一个节点设置为最开始的一个节点
             if  (childNode.parentNode  ==   null )
            
{
                childNode 
=  navigate_tree.getTreeNodeAt( 0 );
            }

        }

    }

}

// ---------------------------------函数定义结束---------------------
//
 开始初始化
navigate_tree.addEventListener( " change " , evt_listen);
node_xml.load(
" makeSWF.xml " );
// ---------------------------初始化结束-------------------
只有注册用户登录后才能发表评论。