到了北京几天后,比完了 ITAT 就去见老刘,老刘是我在计算机群里认识的朋友,由于是初次见面,彼此都不认识,只是通过手机中简单的约定找到了彼此,第一眼看到老刘,有一种亲切感,他长的很 “可爱”(希望他别 K 我)。而最让我感动的是他的礼物,现在贴上来铭记一下:


FireYang 2006-12-25 22:07 发表评论

代码来自 http://try.flex.org/index.cfm

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout
="vertical"
                creationComplete
="initApp()">

<mx:Script>
<![CDATA[

    
// On startup
    public function initApp():void
    {
        
// Set filter function
        
// Be careful to set filterFunction
        
// only after ArrayCollection has been
        
// populated.
        myData.filterFunction=processFilter;
    }

    
// Filter function
    public function processFilter(item:Object):Boolean
    {
        var result:Boolean
=false;

        
// If no filter text, or a match, then true
        if (!item.name.length
                
|| item.name.toUpperCase().indexOf(txtFilter.text.toUpperCase()) >= 0)
        result
=true;

        
return result;
    }
]]
>
</mx:Script>

<!-- Data (use ArrayCollection) -->
<mx:ArrayCollection id="myData">
    
<mx:source>
        
<mx:Object name="Ben Forta"
            location
="Oak Park, MI"
            phone
="(248)555-5555" />
        
<mx:Object name="Jane Doe"
            location
="New York, NY"
            phone
="(212)555-1234" />
        
<mx:Object name="Jim Jones"
            location
="Atlanta, GA"
            phone
="(414)555-1212" />
        
<mx:Object name="Roberta Roberts"
            location
="Chicago, IL"
            phone
="(312)555-4321" />
        
<mx:Object name="Steve Stevens"
            location
="Boston, MA"
            phone
="(617)555-5656" />
    
</mx:source>
</mx:ArrayCollection>

<!-- UI -->
<mx:HBox width="100%">
    
<mx:Label text="Filter:"/>
    
<mx:TextInput id="txtFilter"
            width
="100%"
            change
="myData.refresh()"/>
</mx:HBox>

<mx:DataGrid dataProvider="{myData}"
        width
="100%" height="100%">
    
<mx:columns>
        
<mx:DataGridColumn headerText="Name"
                    dataField
="name"/>
        
<mx:DataGridColumn headerText="Location"
                    dataField
="location"/>
        
<mx:DataGridColumn headerText="Phone"            dataField="phone"/>
    
</mx:columns>
</mx:DataGrid>
</mx:Application>


其中主要的是 ArrayCollection 的 filterFunction 属性,他的使用方法如下:
ArrayCollection 的 filterFunction 属性是继承自 ListCollectionView 的,还有其他类具有这个功能,以下是一个继承关系图,详细的可以看 flex 的帮助文件:

filterFunction 属性的值是一个函数 (Function):
参数:Object 类型的一个值,也可以不带参数;
返回值:Boolean 类型的值,如果返回值为 True 就把这个 Object 放到里面,反之亦然。
其函数格式事例如下:
f(item:Object):Boolean
在函数里面进行处理,以上的例子就是如此:
 public function processFilter(item:Object):Boolean
 {
       var result:Boolean=false;
      // 查看文本框里的字符串长度或字符串的匹配(大小写都可以),然后返回结果。
      if (!item.name.length || item.name.toUpperCase().indexOf(txtFilter.text.toUpperCase()) >= 0)
     result=true;
     return result;
 }
注意:filterFunction 函数只有在对象建立的时候和调用 reflash () 的时候执行的,所以一定要在显示之前调用下 reflash (),否则显示就不正常了,切记!切记!



FireYang 2006-12-16 10:43 发表评论

用 compc 编译器直接编译
命令:
compc -source-path (源文件路径,不能省略) -output (swc 文件路径和名称) -include-classes (类名称)
如:compc -source-path . -output CustomPreloaderSWC.swc -include-classes preload.CustomPreloader

如何导入简单声明文件
如:

<?xml version="1.0"?>
<!-- SimpleManifest.xml -->
<componentPackage>
    
<component id="MyButton" class="MyButton"/>
    
<component id="MyOtherButton" class="MyOtherButton"/>
</componentPackage>

定义一个命名空间:
-namespace http://mynamespace SimpleManifest.xml
引入命名空间:
-include-namespaces http://mynamespace
compc实例:
compc -source-path . -output c:/jrun4/servers/flex2/flex/WEB-INF/flex/user_classes/MyButtons.swc -namespace http://mynamespace SimpleManifest.xml -include-namespaces http://mynamespace
在app如何使用?如下示例:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:a="http://mynamespace">
    
<a:MyButton/>
    
<a:MyOtherButton/>
</mx:Application>

引入文件
-include-file name path
例如导入gif图片:
compc -include-file logo.gif c:/images/logo/logo1.gif 


FireYang 2006-10-28 15:51 发表评论

  1. 安装:
    下载地址
  2. 直接编译 as 文件,加入一下代码
    /** @mtasc -swf  swf 路径 -header 500:400:24:EFEFEF -main*/
    注意一定要有两个 ** 
    其中是 mtasc 的参数如下:
    -pack <路径>:编译对象包中的所有文件。
    -cp <路径>:添加类路径
    -v:开启详细模式,能显示编译的详细信息
    -strict:开启严格模式,加了此参数表示程序内所有的变量必须标明类型,否则会出现 error。
    -infer:开启本地变量引用,在初始化变量的时候就决定该变量的类型。
    -header <文件头>:格式为:宽度:高度:帧速:背景色,如:600:375:30:FFFFFF
    其他略
  3. 可以新建项目,在项目里进行编写。


FireYang 2006-10-14 17:35 发表评论

外国的一个牛人编写的一个字效果类:
原文:http://www.actionscript.com/Article/tabid/54/ArticleID/TextScript--The-Text-Effect-Infrastructure/Default.aspx
类的下载地址:TextScript


首先在舞台上新建一个动态的文本,随意添加几个字符,在属性的栏里选择字体,是否粗体,是否有下划线等
接下来是代码:

var myFormat:TextFormat = new TextFormat();
myFormat.font="Arial Black";
myFormat.bold = true;
myFormat.size = 22;
myFormat.color = 0x550000;
var phrase:String = "Dynamic Effects with TextScript";
var xLoc:Number = 50;
var yLoc:Number = 70;
var delay:Number = 3;
m = TextScript.blurIn(this, phrase, xLoc, yLoc, myFormat, delay);
其中 myFormat 中的样式一定要和放到舞台上的字体,是否粗体,是否有下划线等要一致,否则便不能显示出来。
如果要去掉效果就用如下的代码

TextScript.removeBlurIn(m, delay);
}



FireYang 2006-09-24 00:13 发表评论

0%