• Flex AsDoc 完整版


    Flex 生成AsDoc用的是SDK自带的asdoc.exe工具

    生成AsDoc文档的方式有两种:ant或者FlashBuilder 外部配置工具

    方法一:外部配置工具

    新增一个外部配置工具。过程例如以下:



    配置完毕后,直接单击执行button就自己主动生成AsDoc文档了。(注:这样的方式生成的AsDoc。main-title和window-title參数会出现中文乱码,眼下没有解决。ANT方式不会有乱码。)

    这里核心的部分就是asdoc.exe执行參数。经常使用參数说明:

    參数名称

    參数功能

    -locale

    资源类型(英文:en_US,中文:zh_CN…)

    -doc-classes path-element[…]

    指定须要被输出成文档的类文件(一般用doc-source指定要生成文档的源代码文件夹),这些类文件必须放在资源路径下[默认參数]

    该參数用法等同于compc组件编译器的-include-classes參数

    -doc-namespaces uri manifest

    要求被输出成文档的类文件URI列表。这些类文件必须放在资源路径下。

    必须包括至少一个URI并指出命名空间内容的明白位置

    -doc-sources path-element […]

    须要被输出成文档的文件文件夹,而且其子文件夹也会被递归输出

    -source-path path-element […]

    源代码所在路径(不太明确他和-doc-source的差别。发现不指定也能正常导出)

    -exclude-classes string

    不须要被输出的类文件列表,必须指定类名

    -exclude-dependencies true|false

    决定是否全部的相关类都会输出,假设设true。与输出类相关的类不回被输出。默认值为false

    -footer string  

    文档中HTML页面底部的显示信息

    -left-frameset-width int

    控制文档左边文件夹宽度的整数值。你能够依据你的包名来改变这个值

    默认值是210px

    -main-title string

    文档中HTML页面头部显示信息, 默认值是”API Documentation”.

    -output string

    输出文档的文件夹名. 默认值 “asdoc-output”.

    -package name “description”

    输出文档中相应的包名。你能够指定一个以上的包。建议用-package-description-file方便点

    -package-description-file path-element

    包结构描写叙述文件(见附件:packageDes.xml)

    -library-path

    AsDoc用到的库的路径

    -keep-xml

    When true, retain the intermediate XML files created by the ASDoc tool. The default value is false.


    以下是我生成SWC库的asdoc.exe參数配置:

    -locale zh_CN
    -doc-sources src
    -library-path+="D:Program FilesAdobeAdobe Flash Builder 4.7 (64 Bit)sdks4.6.0frameworkslibsair"
    -footer "AsDocLib的帮助文档"
    -main-title "AsDocLib帮助文档"
    -left-frameset-width 200
    -window-title "AsDocLib帮助文档"
    -package-description-file packageDes.xml
    -keep-xml
    

    (注:lib库中引用AIR库。生成AsDoc会报错,须要增加:-library-path+="D:ProgramFilesAdobeAdobe Flash Builder 4.7 (64 Bit)sdks4.6.0frameworkslibsair"

    packageDes.xml文件内容例如以下:

    <overviews>       
    <packages>               
        <package name="com.asdoc.test.components">
           <shortDescription>                       
               <![CDATA[组件源代码包]]>                       
           </shortDescription>
           <description> 
               <![CDATA[AsDocLib的组件包]]>                     
           </description>
        </package>
        <package name="com.asdoc.test.skins">
           <shortDescription>                       
               <![CDATA[组件皮肤包]]>                       
           </shortDescription>
           <description> 
               <![CDATA[AsDocLib的组件皮肤包]]>                     
           </description>
        </package>
        <package name="com.asdoc.test.utils">
           <shortDescription>                       
               <![CDATA[组件工具类]]>                       
           </shortDescription>
           <description> 
               <![CDATA[AsDocLib的组件工具类]]>                     
           </description>
        </package>
    </packages>
    </overviews>
     

    方法二:ANT方式生成AsDoc

    ANT方式生成AsDoc事实上是将第一种方式弄成脚本化编译。

    在libprojectsrc文件夹以下加上build.xml和build.properties(用过ant脚本化编译的人都知道)

    build.xml内容例如以下:

    <?xml version="1.0"?>
    <!--
    	版权全部 甘训奏 谢谢光临 (我不会告诉你是SDK地下的asdoc里面拷贝的)
    	默认运行 main target
    -->
    <project name="ASDocs" default="main" basedir=".">
    	<!--配置属性-->
    	<property file="build.properties" />
    	<property name="lenient" value="true"/>
    	<property name="flexlib" location="${FLEX_HOME}/frameworks"/>
    	<!--main target 依赖 clean 和 doc target-->
    	<target name="main" depends="clean,doc" description="Clean build of all ASDocs"/>
    	<!--clean target 清除AsDoc输出文件夹-->
    	<target name="clean" description="Cleans all ASDocs">
    		<delete dir="${OUTPUT_DIR}"/>
    		<echo>清除${OUTPUT_DIR}</echo>
    	</target>
    	<!--doc target 生成AsDoc-->
    	<target name="doc">
    	    <condition property="asdoc.jvm.args" value="-Xmx512m">
    	        <os family="windows"/>
    	    </condition>
    	    <condition property="asdoc.jvm.args" value="-Xmx1024m">
    	        <os family="mac"/>
    	    </condition>
    	    <condition property="asdoc.jvm.args" value="-Xmx512m">
    	        <os family="unix"/>
    	    </condition>
    	    <available property="flexTasksJar" value="${FLEX_HOME}/lib/flexTasks.jar" file="${FLEX_HOME}/lib/flexTasks.jar"/>
    	    <available property="flexTasksJar" value="${FLEX_HOME}/ant/lib/flexTasks.jar" file="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
    
    		<!-- Load the <asdoc> task. We can't do this at the <project> level -->
    		<!-- because targets that run before flexTasks.jar gets built would fail. -->
    		<taskdef resource="flexTasks.tasks" classpath="${flexTasksJar}"/>
    
    		<!-- Call asdoc to generate dita xml files -->
    		<!-- 这里就是调用asdoc.exe运行脚本化编译了。对了 fork="true"会导致控制台中文乱码,别问为什么。我也不知道。

    --> <asdoc output="${OUTPUT_DIR}" lenient="true" failonerror="true" warnings="false" strict="true" locale="en_US" fork="false" keep-xml="true"> <!-- asDoc Infomation --> <window-title>asDocAPI标题</window-title> <main-title >asDocAPI文档</main-title> <footer>asDoc API 页脚 版权全部ganxunzou</footer> <!-- top level class to include in asdoc --> <!-- source path for asdoc 依据文件夹生成AsDoc--> <compiler.source-path path-element="src"/> <doc-sources path-element="src"/> <!-- namespaces to include in asdoc --> <!-- 或者用这样的,依据清单文件生成AsDoc。

    这样的方式不太好,没有在清单文件的AsDoc不会生成。 清单文件一般写组件,不会增加皮肤,然后你懂的,AsDo文档里面没有皮肤 --> <!-- <doc-namespaces uri="library://ns.myasdoc.com/flex/myasdoc"/> <namespace uri="library://ns.myasdoc.com/flex/myasdoc" manifest="my-manifest.xml"/> --> <namespace uri="library://ns.adobe.com/flashx/textLayout" manifest="${flexlib}/projects/textLayout/manifest.xml"/> <!-- namespace declaration for asdoc --> <namespace uri="http://www.adobe.com/2006/airmxml" manifest="${flexlib}/projects/airframework/manifest.xml"/> <namespace uri="http://www.adobe.com/2006/airspark" manifest="${flexlib}/projects/airspark/manifest.xml"/> <namespace uri="http://www.adobe.com/2006/rpcmxml" manifest="${flexlib}/projects/rpc/manifest.xml"/> <namespace uri="http://ns.adobe.com/2009/mx-mxml" manifest="${flexlib}/projects/mx/manifest.xml"/> <namespace uri="http://www.adobe.com/2006/advancedgridsmxml" manifest="${flexlib}/projects/advancedgrids/manifest_advancedgrids.xml"/> <namespace uri="http://www.adobe.com/2006/charts" manifest="${flexlib}/projects/charts/manifest_charts.xml"/> <namespace uri="http://www.adobe.com/2006/mxml" manifest="${flexlib}/mxml-manifest.xml"/> <namespace uri="library://ns.adobe.com/flex/spark" manifest="${flexlib}/projects/spark/manifest.xml"/> <namespace uri="library://ns.adobe.com/flex/mx" manifest="${flexlib}/mxml-manifest.xml"/> <namespace uri="library://ns.adobe.com/flex/spark-mobilecomponents" manifest="${flexlib}/projects/mobilecomponents/manifest.xml"/> <namespace uri="library://ns.adobe.com/flex/spark-dmv" manifest="${flexlib}/projects/spark_dmv/manifest_spark_dmv.xml"/> <library-path dir="libs" includes="*.swc" append="true"/> <library-path dir="${FLEX_HOME}/frameworks/libs" includes="*.swc" append="true"/> <library-path dir="${FLEX_HOME}/frameworks/libs/mobile" includes="*.swc" append="true"/> <library-path dir="${FLEX_HOME}/frameworks/libs/automation" includes="*.swc" append="true"/> <external-library-path dir="${flexlib}/libs/air"> <include name="airglobal.swc" /> </external-library-path> <external-library-path dir="${flexlib}/libs"> <include name="framework.swc" /> </external-library-path> <!-- lib中增加AIR库,必须加上以下两个,要不然你调试去吧 --> <external-library-path dir="${flexlib}/libs/air"> <include name="airframework.swc" /> </external-library-path> <external-library-path dir="${flexlib}/libs/air"> <include name="airspark.swc" /> </external-library-path> <jvmarg line="${asdoc.jvm.args}"/> <define name="CONFIG::debug" value="false"/> <define name="CONFIG::release" value="true"/> <define name="CONFIG::FLASH_10_1" value="false"/> <define name="CONFIG::LOGGING" value="false"/> <define name="CONFIG::performanceInstrumentation" value="false"/> </asdoc> </target> </project>


    Build.properties文件内容例如以下:

    # 设置到您的Flex SDK的所在路径
    FLEX_HOME=D:/Program Files/Adobe/Adobe Flash Builder 4.7 (64 Bit)/sdks/4.6.0
     
    # 定位到您的项目源代码的位置
    # {$basedir} 是Ant默认支持的变量
    SOURCE_DIR =${basedir}/src
     
    # 定位到您的Lib路径,假设存在的话
    #LIBS_DIR =${basedir}/libs
     
    # 设定SWF的输出位置
    OUTPUT_DIR = ${basedir}/outasdoc
    
    # 是人都知道SDK版本号
    SDK_VERSION = 4.6.0.23201
    LOCALE = zh_CN
    


    然后选中build.xml右键  -- 调试 – Ant构建就OK了



    Lib SWC AsDoc 提示

    发现SWC复制到AIR里面。AsDoc不提示,解决的方法:

    第一步:在生成AsDoc的时候,加上-keep-xml參数。

    第二步:src文件夹下。新建一个包叫asdocs(名字随便),然后拷贝tempdita下的 packages.dita和自己组件相应的xml文件到asdocs文件夹下。


    第三步:项目右键 – 属性 – Flex库构建路径—资源,勾选asdocs目录。又一次编译swc就支持AsDoc了



    CSDN 不能上传附件,挺烦的。

    AsDocLib的源代码:http://download.csdn.net/detail/ganxunzou/8172865
  • 相关阅读:
    如何获得浏览器localStorage的剩余容量
    按Enter键后Form表单自动提交的问题
    IE10 11的css hack
    text-transform设置单词首字母大写
    Jade模板引擎(一)之Attributes
    sql server之ROW_NUMBER() OVER()取每组的第N行数据
    CSS3之让背景图片全部显示
    摆脱npm的网络问题: 淘宝npm镜像
    MaskedTextBox的聚焦和光标位置
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6991483.html
Copyright © 2020-2023  润新知