您的位置: 首页 - 2007 April

纪念骑士的倒悼

分类: 生活点滴 发布: Slleo 浏览: 日期: 2007年4月26日

今天实有些无聊,于是再看看sohu的骑士,只剩下一张关掉的网页和没有什么人气的论坛了。

原来发现自己总会是不是的想起骑士来,可惜这款不错的游戏就这样倒掉了。



后跑到同学的bbs(http://kofans.cn/bbs)上看了一下,发现马服骑士也要关掉了,哎!难不成国际服也要关掉?

呼呼

宁波.app正在挖的山

分类: 生活点滴 发布: Slleo 浏览: 日期: 2007年4月25日

说是napp打算把这座山给挖了,改造别墅公寓之类。上午坐屋里还感觉到楼房在震动,像是爆山的炸药来着。


站在山脚一边拍的



山脚下也是风景



电网防火墙?


山脚随处可见的小牌子

宁波.小港.永和豆浆

分类: 生活点滴 发布: Slleo 浏览: 日期: 2007年4月24日

都是小熊的错,说什么武汉天气热,宁波更热,就把我带的唯一的一件毛衣也给留下了。宁波今天可是有些冷,单件T恤怕是顶不住的了。

中午,小港,永和豆浆,就是在这里解决午饭了。感觉这里海鲜很多,一般饭菜里都会加点海鲜类的。


这个叫:海鲜炒年糕


这个叫:海鲜排骨绘饭


这个叫:海鲜炒年糕+永和咸豆浆


04/23-->03/07-->BIRTHDAY

分类: 生活点滴 发布: Slleo 浏览: 日期: 2007年4月23日

看图











flash 避开微软新ActiveX控件升级的方法

分类: 学习 发布: Slleo 浏览: 日期: 2007年4月18日

微软为了避免与Eolas公司和加利福尼亚大学之间的专利侵权纠纷。终于发布了针对IE6浏览器的修改补丁,改变了IE对嵌入式ActiveX控件的处理方式。

打上这一补丁后,IE对ActiveX控件和Java程序的处理方式将有所改变,默认情况下不会主动激活,因此用户在访问Flash广告等网络内容时需要多点击一次鼠标,非交互式控件则不改变。

这样肯定造成一个结果,就是很多网站上应用的flash交互程序,会在同用户交互的过程中增加了一道障碍, 还好现在已经有办法使flash绕过这个障碍

首先,到这里下载 http://blog.deconcept.com/flashobject/flashobject1-3.zip

解压将其中的 flashobject.js 放在根目录下

然后在嵌入swf的页面里面加入以下两部分内容:

1.包含 flashobject.js



2.嵌入swf代码



其中第一行 var fo = new FlashObject("fo_tester.swf", "fotester", "300", "300", "8", "#FF6600");
包括了 swf文件名,宽度,高度,flash版本,背景色
第二行表示的是页面向flash传递的参数,如果没有参数,可以删除
第三,四,五行则是对flash的参数进行修改,可以实现背景透明的功能

详细用法,可以参考这里:
http://blog.deconcept.com/flashobject/

Flex RemoteObject and AMFPHP 1.9 教程

分类: 学习 发布: Slleo 浏览: 日期: 2007年4月18日

As you probably know Patrick Mineault has recently released a new version of amfphp which starts the support for Flex2.

In this tutorial we will see how to install the new amfphp release and how to works in flex2 with the RemoteObject tag using amfphp.

本教程将学习 AMFPHP1.9 及 Flex RemoteObject标签的使用方法

1. 下载并安装 amfphp

首先下载 amfphp-1.9.beta ,然后解压到php的服务器目录下,(本例为http://localhost/amfphp2)

2. 创建你的第一个 service

在 amfphp 的 services 目录下 创建 tutorials 文件夹,我们将在这里面放 php 类文件。在 tutorials 目录下新建一个php文件: HelloWorld.php

<?php
/**
* First tutorial class
*/

class HelloWorld {   
    /**     
    * first simple method     
    * @returns a string saying 'Hello World!'     
    */

    function sayHello()    {
        return "Hello World!";
        }
    }
?>

 

注意,跟以前版本的 amfphp 不同,这里不需要 $this->methodTable 数组了,amfphp 1.9 不再利用这个数组注册远程方法。在amfphp 1.9 中 所有的方法都可以被远程访问,除非你声明的方法是 private 的(只在 php5 中支持)或者方法名是以下划线("_")开始的。
我们编写的类中还利用了javadoc 注释,可以在 amfphp browser 中看到这些注释。
跟以前的amfphp 一样,你可以在http://localhost/amfphp2/browser中查看你的services
如图所示:

""

你可以看到类和方法的 javadoc 注释都被显示出来.

3. 创建一个新的Flex project

首先创建一个新的Flex project,打开 project properties(右键单击project name选择properties)。
在 Project properties 对话框中选择 Flex Build path 菜单中的 Library path,并且确认 rpc.swc 文件已经添加到你的项目路径当中.
如图

""

接下来创建服务配置文件,在你的Flex project根目录先建立services-config.xml 文件,如下

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <services>
        <service id="amfphp-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage">
            <destination id="amfphp">
                <channels>
                    <channel ref="my-amfphp"/>
                </channels>
                <properties>
                    <source>*</source>
                </properties>
            </destination>
        </service>
    </services>
    <channels>
        <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel">
            <endpoint uri="http://alessandro-pc:8081/amfphp2/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>
</services-config>

 

再次打开 project properties 对话框 在 Flex Compiler 的Additional compiler arguments中添加字符串:

-services "services-config.xml"

 

如图

""

OK!我们已经为利用 RemoteObjects 做好了准备。

3.1 建立 mxml 文件

在 Flex project 中新建一个文件"main.mxml",

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF" viewSourceURL="srcview/index.html">
    <mx:Button x="170" y="157" label="sayHello" width="79"/>
    <mx:Button x="170" y="187" label="test fault"/>
    <mx:TextArea x="10" y="36" width="239" height="113" id="result_text"/>
    <mx:Label x="10" y="10" text="Result:"/>
</mx:Application>

 

我们创建了两个按钮,sayHello 按钮用来调用远程方法, testfault 按钮调用一个未定义的 php 方法以此来查看错误信息,然后这些返回结果都被显示到 TextArea 中。

下一步,继续完成这个 mxml文件。添加 RemoteObject 标签并在其中声明我们要调用的远程方法。

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF" viewSourceURL="srcview/index.html">
    <mx:RemoteObject id="myservice" fault="faultHandler(event)" showBusyCursor="true" source="tutorials.HelloWorld" destination="amfphp">
        <mx:method name="sayHello" result="resultHandler(event)" />
    </mx:RemoteObject>

    <mx:Script>
        <![CDATA[
            import mx.managers.CursorManager;
            import mx.rpc.events.ResultEvent;
            import mx.rpc.events.FaultEvent;
            private function faultHandler(fault:FaultEvent):void
            {
                CursorManager.removeBusyCursor();
                result_text.text = "code:\n" + fault.fault.faultCode + "\n\nMessage:\n" + fault.fault.faultString + "\n\nDetail:\n" + fault.fault.faultDetail;
            }

            private function resultHandler(evt:ResultEvent):void
            {
                result_text.text = evt.message.body.toString(); // same as: evt.result.toString();
            }
        ]]>
    </mx:Script>

 

 

 

 

    <mx:Button x="250" y="157" label="sayHello" width="79" click="myservice.getOperation('sayHello').send();"/>
    <mx:Button x="250" y="187" label="test fault" click="myservice.getOperation('foo').send(); "/>
    <mx:TextArea x="10" y="36" width="319" height="113" id="result_text"/>
    <mx:Label x="10" y="10" text="Result:"/>
</mx:Application>

 

OK,完成!

在这里要注意两点:
1. 我用 "myservice.getOperation('sayHello').send();" 来调用远程的sayHello方法,你也可以使用 "myservice.sayHello.send();" 来做同样的事情,(译者注:如果远程方法接受参数,则在send方法中传递参数,如myservice.sayHello.send(var1),多个参数之间用逗号隔开)
2. 在 resultHandler 方法中我用 evt.message.body 来访问返回信息,这里也可用 evt.result 来代替

下面解释一下 mx:RemoteObject 标签,

id="myservice" 这个不用说了
fault="faultHandler(event)", 定义错误监听器。
showBusyCursor="true", 是否在调用远程方法期间显示鼠标指针等待(忙)状态。
source="tutorials.HelloWorld" 远程service的路径
destination="amfphp" 指向 services-config.xml 文件中的 <destination>

我们已经定义了 RemoteObject 对象,接下来添加想要调用的远程方法,

在 <RemoteObject> 标签之间添加

<mx:method name="sayHello" result="resultHandler(event)" />

name 属性为远程方法名
result 属性指定接受到返回结果时触发的函数。

让我们来看一个更复杂的例子,这个例子展示了用 ArrayCollection 作为返回数据以及在Flex中使用 [RemoteClass]

在本例中,远程方法返回一个映射了类的数组(an array of mapped classes),也就是说,返回的这个数组中的每个元素都有一个AS类与之对应。

首先创建一个php类 Person.php

<?php
class Person {
    var $firstName;
    var $lastName;
    var $phone;
    var $email;
    // explicit actionscript package
    var $_explicitType = "tutorials.Person";
    }
?>

 

其中 $_explicitType 变量告诉 amfphp 这个Person类与 AS 中的 tutorials.Person 类相对应。

接下来在 amfphp/services/tutorials 目录下编写 Person 类

package tutorials
{
    [RemoteClass(alias="tutorials.Person")]
    [Bindable]
    public class Person
    {
        public var firstName:String;
        public var lastName:String;
        public var phone:String;
        public var email:String;
    }
}

 

其中
[RemoteClass(alias="tutorials.Person")]
告诉Flex 该类与一个远程对象相关联(注意,相关联的类必须有相同的结构,否则Flex 不能正确识别远程对象)

下面创建php的service文件 "PersonService.php",
这个类只有一个 getList 方法用来返回Person对象的数组

<?php
require_once "./Person.php";
class PersonService{   
    /**     
    * Get a list of people     
    * @returns An Array of Person     
    */

    function getList(){
        $people = array(
            array("Alessandro", "Crugnola", "+390332730999", "alessandro@sephiroth.it"),
            array("Patrick", "Mineault", "+1234567890", "patrick@5etdemi.com"),
        );
        $p = array();
        for($a = 0; $a <count($people); $a++){
            $person = new Person();
            $person->firstName = $people[$a][0];
            $person->lastName = $people[$a][1];
            $person->phone = $people[$a][2];
            $person->email = $people[$a][3];
            $p[] = $person;
        }
        return $p;
    }
}
?>

 

先来看一下最终的swf,然后再分析代码

3.1.1 最终 mxml 文件

完整的 main.mxml 代码如下

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF">
    <mx:RemoteObject id="myservice" source="tutorials.PersonService" destination="amfphp" fault="faultHandler(event)" showBusyCursor="true">
        <mx:method name="getList" result="getListHandler(event)" fault="faultHandler(event)" />
    </mx:RemoteObject>
    <mx:DataGrid x="10" y="10" width="345" id="people_list" dataProvider="{dp}" change="changeHandler(event)">
        <mx:columns>
            <mx:DataGridColumn headerText="Last name" dataField="lastName"/>
            <mx:DataGridColumn headerText="First name" dataField="firstName"/>
            <mx:DataGridColumn headerText="Telephone" dataField="phone"/>
            <mx:DataGridColumn headerText="Email" dataField="email"/>
        </mx:columns>
    </mx:DataGrid>

    <mx:Script>
        <![CDATA[
            import mx.utils.ArrayUtil;
            import tutorials.Person;
            import mx.collections.ArrayCollection;
            import mx.rpc.events.ResultEvent;
            import mx.controls.Alert;
            import mx.rpc.events.FaultEvent;

            [Bindable]
            private var dp:ArrayCollection;

            [Bindable]
            private var selectedPerson:Person;

            private function faultHandler(fault:FaultEvent):void
            {
                Alert.show(fault.fault.faultString, fault.fault.faultCode.toString());
            }

            private function getListHandler(evt:ResultEvent):void
            {
                dp = new ArrayCollection( ArrayUtil.toArray(evt.result) );
            }

            private function changeHandler(event:Event):void
            {
                selectedPerson = Person(DataGrid(event.target).selectedItem);
            }
        ]]>
    </mx:Script>
    <mx:Button x="290" y="357" label="get list" click="myservice.getOperation('getList').send();"/>
    <mx:Form x="10" y="174" width="345" height="175">
        <mx:FormHeading label="Selected Person" />
        <mx:FormItem label="First Name">
            <mx:TextInput id="person_first_name" text="{selectedPerson.firstName}" />
        </mx:FormItem>
        <mx:FormItem label="Last Name">
            <mx:TextInput id="person_last_name" text="{selectedPerson.lastName}" />
        </mx:FormItem>
        <mx:FormItem label="Telephone">
            <mx:TextInput id="person_phone" text="{selectedPerson.phone}" />
        </mx:FormItem>
        <mx:FormItem label="Email">
            <mx:TextInput id="person_email" text="{selectedPerson.email}" />
        </mx:FormItem>
    </mx:Form>
</mx:Application>

 

 

 

 

 

RemoteObject 标签 指向 tutorials/PersonService.php 类 并且定义一个方法来调用 PersonService.php 文件中的 getList 方法,当接到返回值后 getListHandler 方法会将返回值转化为 ArrayCollection 对象并且存储在变量 dp 中

最后 get list 按钮的 click="myservice.getOperation('getList').send(); 用来调用远程服务。

这个周末...

分类: 生活点滴 发布: Slleo 浏览: 日期: 2007年4月16日

前天晚上把《肖什克的救赎》给看完,听说这是《越狱》的电影版,于是在朋友cp推荐下,我终于决定把它给看完。

11点开始看的,那片子硬是放了两个多少时,故事里没有像《越狱》一样去描绘太多主人翁如何打洞如何策划,而是用他人讲述的方法来向我们描述了安迪在监狱里的故事,展现出主人翁非凡的才能。

第二天早上起得很晚,睡到了10点多。之后我背着我电脑一个人跑了出来,没有方向,也不知道自己想去哪里,只觉得以前外出闲逛的时候总是有人在一起,或者说没有一个人独自出来逛过。其实一个人出来逛也是个不错的主意,体会良多。沿经几家服饰店,给自己挑了件黑色的T恤,上面还印着点白色的花,看起来像是18岁小孩穿和衣服,我当时却迷糊地看上了它,还感觉良好,走出那家店后才发现原来它穿在自己身上不匹配。

一个人逛了很久,无意间回到了那家石头记,想起送给叶子的那个吊坠,于是又不自觉地走进去,第一眼印入眼帘的还是那个坠子,这次的款式是多了,那款坠子刚出来的时候就三色:黑、黄、蓝,现在多了紫色与红色等。

可能是因为话少,独自一人出来就不用张嘴,好像不讲话更适于我,因此感觉还不错。走着走着到了那个烤尤鱼的排档,我本不大喜欢吃这东西,无奈生活圈子里有些女同志们喜欢,所以每次都是陪她们吃一串。我吃这东西的时候会特别小心,担心油溅到衣服上,而每每看到那些常吃尤鱼的女生吃得衣物上油迹斑斑,很是好笑。

继续走,我是不会一个人去吃什么烤尤鱼的。当然肯德鸡就不一样,尤鱼摊前面一点就是肯德鸡,一杯油奶一大袋薯片,然后打开电脑继续那个该死的国土资源系统,一弄就是一个下午。

晚上的时候,小锋的一句话良我感受良多:“...这人啰,用分身术都忙不过来!(注,这话在书面语里有歧义,但口语里意思很明了很好理解)”,我在想小锋真是个会说话的体贴的贤内助!

半夜,失眠了,不知道在想些什么事情,人乎?物乎?我不知道!更令人头疼的是这个时候楼上床连连发出些怪异的声音来,支呀支呀的响,带着节奏,不时还传来咿呀咿呀的低语声...

打开mp3,听了一段English,发现自己是越听越睡不着,于是强迫自己去想那些网站的架构...这回,我终于睡着了。

就此打住

分类: 生活点滴 发布: Slleo 浏览: 日期: 2007年4月13日

过去的事情就过去了,但没有过去的,就得去认真做好。

一起来看一个好用的title提示效果

分类: 学习 发布: Slleo 浏览: 日期: 2007年4月12日

title提示效果(姑且我这么讲)就类似于html里的那个title="some text",在flash里要实现这样的效果恐怕还要花力气,今天在国外拖回一段代码,相当的好用的说,发出来以备后用。

代码部分:


mc部分:
这部分就是要建立一个title提示的图形,其中中间部分要受到函数的控制。源文件如下:
[mDown=attachments/month_0704/o2007412104834.zip]点击下载此文件[/mDown]

具体操作:
1、新建影片,背影最好不要是白色(因为title的mc部分是白的,当然你可以改);
2、在影片的第一帧添加代码(上面的代码部分);
3、新建按钮,添加如下代码:

4、ctrl+enter,得到影片,以下是一个例子:
[swf=500,100]attachments/month_0704/u20074121160.swf[/swf]

[mDown=attachments/month_0704/m200741211618.zip]例程文件下载[/mDown]

flash变幻效果

分类: 学习 发布: Slleo 浏览: 日期: 2007年4月12日

我的第一个flash(注:以前的flash全是swish做的),效果很简单,但值得纪念。[swf=200,250]attachments/month_0704/r20074120115.swf[/swf]

源文件:[mDown=attachments/month_0704/620074120143.zip]点击下载[/mDown]

制作方法:
1,新建200*250的影片;
2,将导入素材图片(如下图),转换为元件,然后拖入场景;


3,转换10个关键帧,分别对每个帧设“滤镜”,设置“调整颜色”中的“亮度”与“对比度”,10个帧分别设成90,80,70,60,50,40,30,20,10,0,如下图:



4,新建两图层,做另外两个图片的变幻效果,确保动画间的衔接。
5,Ctrl+enter,得到影片。

分页:[«]1[2][3][»]

Powered By Z-Blog 1.8 Walle Build 100427

Copyright © Slleo.com. Some Rights Reserved.