MySharedObj.as
package FlexLearn.shareObj
{
import flash.events.NetStatusEvent;
import flash.net.SharedObject;
import flash.net.SharedObjectFlushStatus;
/**flex共享对象类**/
public class MySharedObj
{
private var sharedObj:SharedObject;
public function MySharedObj()
{
sharedObj = SharedObject.getLocal("haha"); //生成一个本地共享对象sharedObj,haha是要保存在本地的文件的名字,后缀名为.sol
}
/**读取**/
public function myReadValue():String{
var str:String = sharedObj.data.selfValue;
var arr:Array = sharedObj.data.selfArr;
trace(sharedObj.size); //共享对象当前所存储的总字节大小(读取效率低,尽量别用)
/**
* 如果当前共享对象没有存储东西(即size属性值为0),或执行了clear方法,所有的自定义属性都没了
* 则所有[sharedObj.data.自定义属性]的值都为undefined;如sharedObj.data.selfValue
**/
trace(sharedObj.data); //output [object Object]
trace(sharedObj.data.selfValue); //if(size==0){output tenten}else{undefined}
// trace(sharedObj.data.selfArr[0].B); //output helloworld劳动节
return "*****";
}
/**
* 保存共享数据
* sharedValue 字符串
* bufLength 缓冲值
*/
public function mySaveValue(sharedValue:String, bufLength:Number):void{
sharedObj.data.selfValue = sharedValue; //存储了一个字符串
/**
* SharedObject对象可以保存各种格式的数据
* 一种格式的数据对象都可以用一种SharedObject对象(sharedObj.data)的自定义属性来存储
* (如selfAtt属性存储了一个数组arr)。
* 如果一个共享对象的属性目前还没存储数据,则此属性的返回值为undefined
* */
var arr:Array = new Array();
arr.push({A:"你好呀", B:"helloworld劳动节", C:"108"}); //这是一个数据结构(要保存的数据1)
sharedObj.data.selfArr = arr; //selfArr是自定义乱起的共享对象(sharedObj.data)的属性名(乱起的前提是在保存的时候乱)
/**显示的把共享对象写入本地磁盘(flush方法),不然可能会把共享对象当做垃圾回收掉**/
var flushStatus:String = null;
try{
flushStatus = sharedObj.flush(bufLength); //bufLength表示缓冲值
}catch(error:Error){
trace("error message: " + error.message);
}
if(flushStatus != null){ /*判断共享对象是否正确的写入了本地磁盘*/
switch(flushStatus){
//磁盘大小不够
case SharedObjectFlushStatus.PENDING:
sharedObj.addEventListener(NetStatusEvent.NET_STATUS, nowFlushStatus);
break;
//成功保存
case SharedObjectFlushStatus.FLUSHED:
trace("success saved");
break;
}
}
}
private function nowFlushStatus(event:NetStatusEvent):void{
switch(event.info.code){
case "SharedObject.Flush.Success": //flush success
trace("User granted permission, value saved 成功");
break;
case "SharedObject.Flush.Failed": //flush failed
trace("User denied permission, value not saved 失败");
break;
}
sharedObj.removeEventListener(NetStatusEvent.NET_STATUS, nowFlushStatus);
}
/*clear 清除本地共享对象shareObj*/
public function myClearValue():void{
/**
* clear方法
* 对于本地共享对象,清除所有数据并从磁盘删除共享对象。
* 对共享对象的引用仍然处于活动状态,但其数据属性(sharedObj.data的所有属性)被删除。
* */
sharedObj.clear();
delete sharedObj.data.savedValue;
}
}
}
shareObj.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768"
creationComplete="init();">
<fx:Script>
<![CDATA[
private var sharedObj:MySharedObj;
private function init():void{
sharedObj = new MySharedObj();
}
]]>
</fx:Script>
<s:Button id="readBut" x="100" y="100" label="read" click="trace(sharedObj.myReadValue());"/>
<s:Button id="saveBut" x="200" y="100" label="save" click="sharedObj.mySaveValue('tenten', 0);"/>
<s:Button id="clearBtn" x="300" y="100" label="clear" click="sharedObj.myClearValue();"/>
</s:Application>
分享到:
相关推荐
文章可能还涉及了一些具体的示例,如EffectsCtrlDemo,这个例子可能是演示如何控制组件的行为和特效的。 总的来说,行为类和特效类是Flex中增强组件交互性和视觉体验的重要手段。通过合理地运用这两类工具,开发者...
这个“Flex Style很酷的例子”压缩包可能包含了各种使用Flex布局的示例代码,通过查看和实践这些示例,你可以更直观地理解Flex布局的工作原理,并学习如何在实际项目中应用。文件名“FlexStyle”可能包含HTML、CSS和...
描述中提到的“网上找到的,共享一下”可能是指有现成的示例代码。在提供的压缩包文件列表中,我们看到两个MXML文件(SaveChart.mxml和SaveWebcam.mxml)和两个XML配置文件(SaveChart-app.xml和SaveWebcam-app.xml)...
"flex文档"标签提示我们,教程中可能涵盖了完整的Flex开发流程,从创建项目、设计界面、编写代码、调试测试到部署发布,每个环节都有详细的解释和示例。这对于开发者来说是一份全面的学习资料。 "flex实例"则意味着...
- **静态方法/变量**:类级别,所有对象共享同一份。 ##### 接口 (Interface) - **定义**:一组方法签名的集合,不包含具体实现。 - **用途**:提供一种规范,让类遵循特定的行为模式。 ##### 继承 (Inheritance)...
6. **API和开发文档**:Flex Viewer 3.0提供了详细的API文档和示例代码,帮助开发者快速理解和使用这个框架,进行二次开发。 7. **社区支持**:作为开源项目,Flex Viewer 3.0拥有活跃的开发者社区,用户可以在其中...
8. `BindingModelingValidatingFormatting.mxml`:这可能是一个示例,演示了数据绑定、模型构建、验证和格式化的用法,这些都是Flex UI开发中的关键概念。 通过这些文件,开发者可以学习到如何将Flex的UI设计和数据...
3. **ActionScript 3.0 代码共享**:由于 Flex 和 Flash 都使用 ActionScript 3.0,所以可以编写可复用的代码库,提高开发效率。例如,你可能会在 "Chapter01" 中看到一些通用的函数或类,它们既能在 Flex 中使用,...
Flex是一种用于创建富互联网应用程序(RIA)的开放源代码框架,而SFS则是为Flex应用提供数据共享和存储服务的组件。 1. **Flex技术**:Flex是由Adobe开发的,用于构建基于Flash Player或Adobe AIR运行时的交互式...
3. **示例代码**:工程可能包含了一些示例代码,演示如何使用FlexCAN功能。这些代码可以用来验证FlexCAN模块的功能,比如建立点对点通信、多播通信或者故障注入等场景。 4. **配置文件**:可能包含用于配置FlexCAN...
在“flex cairngorm框架实例 真正可运行直接导入”中,我们拥有的是一个可以直接导入并运行的示例项目。这表明该压缩包包含了一个完整的、配置好的Cairngorm框架应用,开发者无需额外配置或修改就能启动和测试。这...
**示例代码** `examples` 目录通常包含了一些演示如何使用 `modelglueflex` 的实例代码。通过研究这些例子,开发者可以直观地学习到框架的用法,理解其工作原理,并能快速上手实践。 **应用模板** `...
4. `AuthortimeSharedAssets.fla` - 这个文件可能包含了在设计时共享的资源,可能与Grak库的演示或测试相关。 5. `main.html` - 这是用于在Web浏览器中展示SWF(Flash)内容的HTML容器,可能用来运行使用Grak库的AS...
在提供的"demo-graph"文件中,可能包含了一个简单的示例项目,演示了上述概念的实际应用。用户可以通过查看源码来深入理解FLEX和AJAX如何协同工作,创建出一个功能完善的图形定义工具。 总之,结合FLEX的可视化能力...
- 教程会介绍共享对象的使用,并通过一个简单的游戏移动同步示例来解释其工作原理。 6. **服务器执行计划** - 可能会涉及如何在Red5服务器上安排定时任务,实现自动化操作。 7. **录制播放视频** - 讲解如何...
- **Red5_BlazeDS_Flex**:这个文件可能包含了一个完整的示例项目,演示了如何在Flex 4环境中配置和使用RED5及BlazeDS。可能包括Flex源代码、配置文件、示例数据等。 - **Red5_BlazeDS_Java**:此文件可能包含了与...
服务是Angular中用于封装共享逻辑和数据的对象,它们可以跨组件通信,提高代码复用。通过`@Injectable()`装饰器,服务可以被注册到依赖注入系统中。 9. **测试与持续集成** Angular CLI 包含自动化测试工具,如...
3. 示例代码:可能包含一些未格式化的代码示例,用于演示插件的效果。 4. 许可证文件:阐述了插件的使用许可条件,尊重开源软件的版权是很重要的。 总的来说,FlexPrettyPrintCommand_0.8.9是FlexBuilder用户的一个...
通过在URL中指定“localhost”,意味着测试代码将在本地计算机上运行,并且“HelloServer”可能是一个简单的示例应用或服务,用于演示P2P连接和通信。 在提供的文件列表中: 1. `p2p_HelloWorld.as`:这是一个AS3...
通常,这样的示例会包含一个运行在Adobe AIR环境下的Flex应用,它演示了Vulcan框架的用法,帮助开发者更好地理解和学习如何在自己的项目中集成Vulcan。 通过研究这个样本,开发者可以了解到Vulcan如何处理命令管理...