知识大全 在silverlight中使用downloader
Posted 内容
篇首语:缥帙各舒散,前后互相逾。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在silverlight中使用downloader相关的知识,希望对你有一定的参考价值。
downloader对象为Silverlight 插件提供了下载功能 其通过HTTP(get)请求异步下载指定的内容
downloader所支持的event包括
Completed 下载完成 (Downloader)
DownloadFailed 下载失败
DownloadProgressChanged 下载进度变化 (Downloader)
支持的方法包括
Abort Equals FindName (DependencyObject) GetHost GetResponseText GetValue Open Send SetValue
下面这个DEMO演示使用downloader从网上下载jpg图片以及xaml文件并完成数据加载的过程
其xaml代码如下所示 <Canvas Canvas Left= > <TextBlock Canvas Left= Canvas Top= Name= StartDownLoadImg >下载图片</TextBlock> <TextBlock Canvas Left= Canvas Top= Name= StartDownLoadXaml >下载xaml</TextBlock> </Canvas> <! 下载进度条 > <Canvas Canvas Top= > <Rectangle Name= progressRectangle Canvas Left= Height= Width= Fill= Maroon /> <Rectangle Canvas Top = Canvas Left= Height= Width= StrokeThickness= Stroke= Black /> <TextBlock Name= progressText Canvas Top = Canvas Left= Text= % FontSize= /> </Canvas> <Image Name= loadimg Height= Width= /> <Canvas Canvas Top= x:Name= loadxaml />
接下来就是相应的js代码(详情见注释) Silverlight_JsWeb Downloader = function() Silverlight_JsWeb Downloader prototype = handleLoad: function(plugIn userContext sender) this plugIn = plugIn; // 附加事件处理程序 sender findName( StartDownLoadImg ) addEventListener( MouseLeftButtonDown Silverlight createDelegate(this this handleMouseLeftButtonDown)); sender findName( StartDownLoadXaml ) addEventListener( MouseLeftButtonDown Silverlight createDelegate(this this handleMouseLeftButtonDown)); progressText = sender findName( progressText ); progressRectangle = sender findName( progressRectangle ); //开始下载 handleMouseLeftButtonDown:function (sender eventArgs) var slPlugin = sender getHost(); //创建downloader对象 var downloader = slPlugin createObject( downloader ); //下载进度变化事件绑定 downloader addEventListener( downloadProgressChanged Silverlight createDelegate(this this handleDownloadProgressChanged)); //下载结束事件绑定 downloader addEventListener( pleted Silverlight createDelegate(this this handleCompleted)); //下载失败事件绑定 downloader addEventListener( downloadFailed Silverlight createDelegate(this this handleDownloadFailed)); //初始化下载请求 if(sender name == StartDownLoadImg ) downloader open( GET ClientBin/tang jpg ); else downloader open( GET xaml/PathScene xaml ); //downloader open( GET contoso TTF );字体下载
//执行下载请求 downloader send(); //下载进度改变 handleDownloadProgressChanged:function (sender eventArgs) var percentage = Math floor(sender downloadProgress * ); progressText text = percentage + % ; progressRectangle width = percentage * ; //下载完成 handleCompleted:function (sender eventArgs) var plugin = sender getHost(); if (sender uri == ClientBin/tang jpg ) //绑定图片信息 sender findName( loadimg ) setSource(sender ); //清除 loadxaml 下的内容 sender findName( loadxaml ) children clear(); //var pathCanvas = sender findName( pathCanvas ); //if (pathCanvas != null) // // sender findName( loadxaml ) children remove(pathCanvas); // //sender findName( loadxaml ) children removeAt( ); if (sender uri == xaml/PathScene xaml ) // 获取下载内容 var xamlFragment = sender ResponseText; // 创建内容 var xamlPath = ntent createFromXaml(xamlFragment); sender findName( loadxaml ) children add(xamlPath); // 清除图片绑定 sender findName( loadimg ) Source = ; // 下面为下载字体并进行加载的测试 // var myTextBlock = sender findName( myTextBlock ); //myTextBlock setFontSource(sender); // 设置字体 Contoso Font //myTextBlock fontFamily = Contoso Font ; //myTextBlock text = This is my new font! ; //下载失败处理事件 handleDownloadFailed:function (sender errorArgs) var errorMsg = Silverlight Error: \\n\\n ; errorMsg += Error Type: + errorArgs errorType + \\n ; errorMsg += Error Message: + errorArgs errorMessage + \\n ; errorMsg += Error Code: + errorArgs errorCode + \\n ; switch(errorArgs errorType) case RuntimeError : if (errorArgs lineNumber != ) errorMsg += Line: + errorArgs lineNumber + \\n ; errorMsg += Position: + errorArgs charPosition + \\n ; errorMsg += MethodName: + thodName + \\n ; break; case ParserError : errorMsg += Xaml File: + errorArgs xamlFile + \\n ; errorMsg += Xml Element: + errorArgs xmlElement + \\n ; errorMsg += Xml Attribute: + errorArgs xmlAttribute + \\n ; errorMsg += Line: + errorArgs lineNumber + \\n ; errorMsg += Position: + errorArgs charPosition + \\n ; break; default: break; alert(errorMsg);
好了 今天的内容就到这里了 cha138/Article/program/net/201311/12957相关参考