每天学点Silverlight&Flash1——XMl操作

 

 

 

最近在学习Flash,准备每天都花点时间去用Silverlight和Flash去实现些相同的功能。

我之前有学过半年的Silverlight,因为完全可以用C#来写,最多学习了半年的Silverlight,比较扯得是项目里竟然用flash,我发现还是得懂点flash。。

在园子里看到夏天的树每天学点flash系列不错,我就试着学习他每天学点。有些功能都是和他的一样,但是代码我完全都是我写的。

1.简单加密功能实现:

通过获取当前的天来判断是否等于某个数,不同的情况我们让程序显示不同的内容。

a.使用Flash实现:

  i. 创建一个Flash文件:

  2010061216395511.png

使用ActionScript3.0。

ii.在默认的那一帧中添加一个文本如下图:

2010061216422389.png

iii.插入一个新的关键帧,并把它的文字设置为"对不起,系统已经过期"如下图:

2010061216435397.png

并保存文件为"Encryption.fla"。

iv.新建一个as文件,并保存为Encryption.as:

2010061216474150.png

需要注意的是:Encryption.as和Encryption.fla必须保存在同一目录下。

as文件的代码:

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
package
{
import flash.events.MouseEvent;
import flash.system.ApplicationDomain;
import flash.events.Event;
import flash.display.MovieClip;

public class Document extends MovieClip{

public
function Document(){
this .addEventListener(Event.ADDED_TO_STAGE,on_added_to_stage);
}

private
function on_added_to_stage(e:Event): void {

// the MovieClip stoped at the first frame
stop();

// get the datetime
var myday:Date = new Date();
var mydate:Number = myday.getDate();

// trace(mydate); ----- 12
if (mydate == 12 )
{
this .gotoAndStop( 2 );
}

}

}
}

 

最后一步是要把这个as文件绑定到fla文件。

2010061216530190.png

 

b.使用SIlverlight实现:

i.创建一个Silverlight应用程序,如下图:

2010061216561165.png

ii.xaml文件内容:

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
1 < UserControl x:Class ="Encryption.MainPage"
2 xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
4 xmlns:d ="http://schemas.microsoft.com/expression/blend/2008"
5 xmlns:mc ="http://schemas.openxmlformats.org/markup-compatibility/2006"
6 Width ="550" Height ="400" >
7
8 < Grid x:Name ="LayoutRoot" Background ="#FF9865" >
9 < TextBlock Height ="23" HorizontalAlignment ="Left" Margin ="190,176,0,0" Name ="tblk1" Text ="欢迎你使用这个系统" VerticalAlignment ="Top" Width ="177" FontSize ="13" FontFamily ="Comic Sans MS" Foreground ="#FF0000" />
10 </ Grid >
11   </ UserControl >

iii.cs文件的内容:

2010061216575271.png

 

比较:Silverlight程序耗时:5分钟; Flash程序耗时:10分钟。(只是我个人的使用时间,我是个actionscript新手)

--------------------------------------------------------------------------------------------------------------------------------------

2.读取XML文件:

功能描述:读取一个XML文件的内容,并让它显示在一个界面。

XML文件的内容:

 

 
  
<? xml version="1.0" encoding="utf-8" ?>
< GALLERY >
< IMAGE TITLE ="Nicholas" > image1.jpg </ IMAGE >
</ GALLERY >

 

 

a.使用Flash实现:

i.创建一个Actionscript文件也就是as文件起名为"ReadXML.as":

具体的创建方法上面例子里有说明。

as文件中需要使用ActionScript实现的功能:加载xml文件,并让它的节点内容显示在第一帧。代码:

 

 
  
package
{
import flash.system.System;
import flash.system.ApplicationDomain;
import flash.events.Event;
import flash.display.MovieClip;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;

public class ReadXML extends MovieClip{

public
function ReadXML(){
this .addEventListener(Event.ADDED_TO_STAGE,on_added_to_stage);
}

private
function on_added_to_stage(e:Event): void {


var myLoader:URLLoader = new URLLoader();
myLoader.load(
new URLRequest( " Nicholas.xml " ));
myLoader.addEventListener(Event.COMPLETE,processXML);
}
private
function processXML(e:Event): void {
var myXML:XML;
var myText:TextField = new TextField();
var myArray:Array = new Array();
myXML
= new XML(e.target.data);

// push each Title to the array
for ( var i: int = 0 ; i < myXML. * .length(); i ++ ){
trace(
" My image number is " + (i + 1 ) + " , it's title is " + myXML.IMAGE[i].@TITLE + " and it's URL is " + myXML.IMAGE[i]);
myArray.push(myXML.IMAGE[i].@TITLE);
}

// trace(myXML.IMAGE.@TITLE);

myText.text
= myXML.IMAGE.@TITLE;
addChild(myText);

myText.x
= 220 ;
myText.y
= 200 ;
myText.textColor
= 0xFF00000 ;
myText.thickness
= 5 ;


}

}
}

ii.创建一个fla文件,最好和ReadXML.cs文件在同一目录下,并这个flash文件添加后台代码:

2010061217104972.png

iii.运行程序。

 

b.使用Silverlight实现:

i.创建一个SIlverlight应用程序;

方法在上面那个例子里有说明。

ii.把上面那个XML文件添加到项目中:

2010061217153638.png

 

iii.在xaml中需要添加一个控件Canvas:

 

 
  
< UserControl x:Class ="XMLReader.MainPage"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width
="550" Height ="400" >

< Grid x:Name ="LayoutRoot" Background ="#FF9865" >
< Canvas x:Name ="canvas" Width ="550" Height ="400" ></ Canvas >
</ Grid >
</ UserControl >

iv.使用linqtoxml读取xml节点,并把内容通过一个textblock显示在前台。

 

 
  
public MainPage()
{
InitializeComponent();
Loaded
+= new RoutedEventHandler(MainPage_Loaded);
}

void MainPage_Loaded( object sender, EventArgs e)
{
var images
= from img in XElement.Load( " Nicholas.xml " ).Elements( " IMAGE " )
select img;
TextBlock block
= new TextBlock();
block.SetValue(Canvas.TopProperty,
200.0 );
block.SetValue(Canvas.LeftProperty,
220.0 );

block.Text
= "" ;
foreach (var image in images)
{
block.Text
+= image.FirstAttribute.Value;
}

canvas.Children.Add(block);
}
}

 

对比:Silverlight耗时5分钟,Flash耗时15分钟(包括查找资料和类的使用学习)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值