当前位置:  编程技术>移动开发
本页文章导读:
    ▪NGUI panel使用soft clip时,屏幕缩放有关问题        NGUI panel使用soft clip时,屏幕缩放问题我发现把那个panel的LocalScale的x,y,z的改成一样的就行了。我把他们的LocalScale.x和z都等于了y。再改一下Clipping的大小。效果不是最佳的,先将就着吧,呵呵~.........
    ▪ 关于win7/8上不能写入文件的有关问题        关于win7/8下不能写入文件的问题问题描述:我在android命令行自动构建时是使用的cygwin做的编译环境。我有2个打包批处理文件,android.bat和default.bat。其中android.bat是设置一些变量,并且会调用.........
    ▪ 数据储存之文件操作       数据存储之文件操作在ios开发中,如果要访问模拟器中app的文件夹,既可以通过程序本身直接去访问,也可以通过命令行去访问。     在命令行下的访问方法为,首先打开命令,在命令行中.........

[1]NGUI panel使用soft clip时,屏幕缩放有关问题
    来源: 互联网  发布时间: 2014-02-18
NGUI panel使用soft clip时,屏幕缩放问题

我发现把那个panel的LocalScale的x,y,z的改成一样的就行了。我把他们的LocalScale.x和z都等于了y。再改一下Clipping的大小。效果不是最佳的,先将就着吧,呵呵~~~
对了,代码里面在Start里面运行SetPanel()时,最好用StartCoroutine或者Invoke,或者先yield一秒,我怕UI还没缩放就运行了就不好了,呵呵~~~我这里没写,你们自己写哈,呵呵~~~

using UnityEngine;
using System.Collections;

public class SubPanelPosition : MonoBehaviour {
	public ScreenDirection screenDirection;
	//horizontal表示水平滑动;vertical表示垂直滑动。
	public enum ScreenDirection 
	{
		horizontal,
		vertical
	}
	public float size;
	private Transform parent;
	private Transform child;
	private float ScaleSize;
	private float rateX;
	private float rateY;
	UIPanel PanelScript;
	void Start()
	{
		Invoke("SetPanel",0.5f);
	}
	void SetPanel()
	{
		parent = transform.parent;
		child = transform.GetChild(0);
		PanelScript = transform.GetComponent<UIPanel>();
		
		transform.parent = null;
		child.parent = null;
	
		
		if(screenDirection == ScreenDirection.vertical)
		{
		    rateX =  Screen.width/size;
			rateY = 1;
			ScaleSize = transform.localScale.y;
		}
		else if(screenDirection == ScreenDirection.horizontal)
		{
			rateX = 1;
            rateY = Screen.height/size;
			ScaleSize = transform.localScale.x;
		}
		
		transform.localScale = new Vector4(ScaleSize,ScaleSize,ScaleSize,ScaleSize);	
		transform.parent = parent;
		child.parent = transform;
		PanelScript.clipRange = new Vector4(PanelScript.clipRange.x,PanelScript.clipRange.y,PanelScript.clipRange.z * rateX,PanelScript.clipRange.w * rateY); 
	}
	
}

 

注:其中Screen Direction表示水平还是垂直滑动,如果是水平的话Size就是你当前发布时的Screen.width,如果是垂直的话,size就是Screen.height。

 

看看第二种方法,和前面差不多,改了一点~~~

using UnityEngine;
using System.Collections;

public class SubPanelPosition : MonoBehaviour {
	public ScreenDirection screenDirection;
	//horizontal表示水平滑动;vertical表示垂直滑动。
	public enum ScreenDirection 
	{
		horizontal,
		vertical
	}
	private Transform parent;
	private Transform child;
	private float ScaleSize;
	private float rateX;
	private float rateY;
	UIPanel PanelScript;
	void Start()
	{
		parent = transform.parent;
		child = transform.GetChild(0);
		PanelScript = transform.GetComponent<UIPanel>();
	}
	void SetPanel()
	{		
		transform.parent = null;
		child.parent = null;
	
		
		if(screenDirection == ScreenDirection.vertical)
		{
			ScaleSize = transform.localScale.y;
			rateX = ScaleSize/transform.localScale.x;
			rateY = 1;
		}
		else if(screenDirection == ScreenDirection.horizontal)
		{
			ScaleSize = transform.localScale.x;
			rateX = 1;
			rateY = ScaleSize/transform.localScale.y;
		}
		
		transform.localScale = new Vector4(ScaleSize,ScaleSize,ScaleSize,ScaleSize);	
		transform.parent = parent;
		child.parent = transform;
		PanelScript.clipRange = new Vector4(PanelScript.clipRange.x,PanelScript.clipRange.y,PanelScript.clipRange.z * rateX,PanelScript.clipRange.w * rateY); 
	}
	
}


 

1楼sgz_1990昨天 13:04哥们 请教个问题。。。你整个ui场景的缩放是怎么实现的 用的UIStretch ? 还是?n还有 这个脚本你挂在哪? 挂在Clip panel下的Grid上 还是?n初学者 多多指教Re: dlnuchunge昨天 16:49回复sgz_1990nui的缩放用UIStretch,脚本挂在Clip panel上面噢~~~

    
[2] 关于win7/8上不能写入文件的有关问题
    来源: 互联网  发布时间: 2014-02-18
关于win7/8下不能写入文件的问题

问题描述:我在android命令行自动构建时是使用的cygwin做的编译环境。我有2个打包批处理文件,android.bat和default.bat。其中android.bat是设置一些变量,并且会调用default.bat。default.bat则会用echo命令写入一个配置文件config.h,如果default.bat没有system权限的话,则会写入文件失败,config.h里面是空白。导致编译失败。


解决方法:修改default.bat的权限。注意:以下如何修改权限的内容为转载复制,便于自己查看。原文链接在:http://bbs.360safe.com/thread-141104-1-1.html

注意:由于cygwin在编译时也需要创建一些文件,因此在运行cygwin时需要鼠标右键然后选择以管理员身份运行。

首先,大家需要了解下,目前win8的文件夹用户组获取权限的方法相对于win7来说,有了不少的改动,感觉更方便了。。。
目前不少人还觉得是administrator权限是系统的最高权限,其实不然,system的权限才是。
根据字面意思理解也不然,adm是管理员的意思,sys是系统的意思,管理员是人,系统是机器。为了保护我们所运行的window的安全,微软把一部分权限给了人为不能正常的使用的system系统用户组来管理。。。

也就是说有了system权限,系统里面所有文件夹的更改及删除操作都能够轻松处理,特别是我们知道win8应用商店安装所在的文件夹的文件不能够进入进行操作,所以呢,咱们有了这个方法也不怕了
现在咱们来步入正题,如何获取这个权限呢,其实很简单。

咱们以安装过后未正常卸载留下的adobe reader件夹 为例(为了演示,重新下载了这个我不用的软件下来帮助友友)
先来看一下,adobe reader文件夹未设置权限前删除文件夹时系统所提示的图片
 ,

正是开始步入教程,设置一个万恶的回复可见,我也不容易呀呀呀理解万岁第一步,右键点击所要删除的文件夹 

第二步,进入属性面板后点击“安全”,再点击底部的高级选项,如图
 

第三步,进入高级安全设置,在这里我们可以看到图中我圈中的地方显示的目前所拥有更改此文件权限的用户组为system,我们要做的就是从sys手中获得这个权限,如图
 

第四步,点击上图所示system权限后面的“更改”,在如图所示输入框里面输入字母e,如图。
 

第五步,点击后面的检查名称,原来的字母e会变成everybody字样,此意思为所有的人,就是所有用户组都能控制此文件夹,点击确定,如图
 

此时,咱们会发现,页面里面所有者下面多了个选框。咱们先点击一下权限条目的system,把上下两个选框都勾选上,如图,完毕后点击确定。。
 

点击确定后会弹出一个框,问是否继承。。。。咱们点击确定即可。。。
好了,我们就这样完成了所有的步骤。。
接下来,直接点击删除文件夹把,不会有任何提示了吧。。


    
[3] 数据储存之文件操作
    来源: 互联网  发布时间: 2014-02-18
数据存储之文件操作

在ios开发中,如果要访问模拟器中app的文件夹,既可以通过程序本身直接去访问,也可以通过命令行去访问。

    在命令行下的访问方法为,首先打开命令,在命令行中,敲入以下命令就可以访问到所指定app的目录,命令如下:

cd/Users/ren/Library/Application\Support/iPhone\Simulator/6.0/Applications/805D7CF0-5DBB-4FCD-9922-0D5C460F510E/

对命令行解读:

cd /Users/主机名/Library/ApplicationSupport/iPhone Simulator/SDK版本号/Applications/应用唯一标示ID/

然后,就可以进入本应用的任意一个文件夹。如果要对文件夹进行拷贝、删除操作,这需要root权限。

    第二种,是通过应用程序本身去访问自身的文件夹。并通过程序进行文件的创建、删除、写入和读出等操作。

1.    访问指定位置的文件夹。

访问Documents文件夹

NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString *docPaths = [paths objectAtIndex:0];

访问Cache文件夹

NSArray *paths1 =NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *cachePaths = [paths1 objectAtIndex:0];

访问Library文件夹

NSArray *paths2 =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString *libraryPaths = [paths2 objectAtIndex:0];

//NSDocumentDirectory常量就是指定查找的目标是Documents文件夹,而NSUuserDomainMask常量指定从应用程序的主目录中搜索,也就是从Application文件夹的相应程序的文件夹开始找
//YES表示希望获取所有找到的目录的完整路径
    NSString *documentsDirectory = [paths objectAtIndex:0];
//这句话记住就行,每个应用程序文件夹里面只有唯一一个Documents文件夹,但是NSSearch方法会返回很多个,我们只取第一个即可。(Cache和Library与Documents相同)。

2.下面是文件的创建、删除、写入和读出。

创建与删除:
//创建文件管理器
NSFileManager *fileManager = [NSFileManager defaultManager];
//获取路径
//参数NSDocumentDirectory要获取那种路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];//去处需要的路径

//更改到待操作的目录下
[fileManager changeCurrentDirectoryPath:[documentsDirectorystringByExpandingTildeInPath]];

//创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil
[fileManager createFileAtPath:@"fileName" contents:nilattributes:nil];

//删除待删除的文件
[fileManager removeItemAtPath:@"createdNewFile" error:nil];

 

//写入数据:

    //创建文件管理器

    NSFileManager *fileManager = [NSFileManagerdefaultManager];

    //获取路径

    //参数NSDocumentDirectory要获取那种路径

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    NSString *documentsDirectory = [pathsobjectAtIndex:0];//去处需要的路径

    NSLog(@"documentsDirecrtory:%@",documentsDirectory);

    //更改到待操作的目录下

    [fileManager changeCurrentDirectoryPath:[documentsDirectorystringByExpandingTildeInPath]];

    //创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil

    [fileManager createFileAtPath:@"fileone"contents:nil attributes:nil];

    NSString *str = [documentsDirectorystringByAppendingPathComponent:@"fileone"];

    NSLog(@"str:%@",str);

    BOOL isExsit = [fileManagerfileExistsAtPath:str];

    if (isExsit) {

        NSLog(@"文件存在");

    }

    else

    {

        NSLog(@"文件不存在");

    }

    //获取文件路径

    NSString *path = [documentsDirectorystringByAppendingPathComponent:@"fileone"];

    NSLog(@"path:%@",path);

    //待写入的数据

    NSString *temp = @"Hello friend";

    int data0 = 100000;

    float data1 = 23.45f;

    //创建数据缓冲

    NSMutableData *writer = [[NSMutableDataalloc] init];

    //将字符串添加到缓冲中

    [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];

    //将其他数据添加到缓冲中

    [writer appendBytes:&data0 length:sizeof(data0)];

    [writer appendBytes:&data1 length:sizeof(data1)];

    //将缓冲的数据写入到文件中

    [writer writeToFile:path atomically:YES];

   

    //读取数据:

    int gData0;

    float gData1;

    NSString *gData2;

    NSData *reader = [NSDatadataWithContentsOfFile:path];

    gData2 = [[NSString alloc] initWithData:[readersubdataWithRange:NSMakeRange(0, [temp length])]

                                   encoding:NSUTF8StringEncoding];//得到第一个写入的数据

    [reader getBytes:&gData0 range:NSMakeRange([templength], sizeof(gData0))];//得到第二个写入的数据

    [reader getBytes:&gData1range:NSMakeRange([temp length] + sizeof(gData0), sizeof(gData1))];//得到第三个写入的数据

   //NSMakeRange代表数据范围,getBytes从reader中读取指定范围的数据

    NSLog(@"%@,%d,%f",gData2,gData0,gData1);

    //读取工程中的文件:

    //读取数据时,要看待读取的文件原有的文件格式,是字节码还是文本

    //可以以字节码格式,也可以以文本格式去读取

    //用于存放数据的变量,因为是字节,所以是UInt8

    UInt8 b = 0;

    //获取文件路径

    NSString *path1 = [[NSBundle mainBundle] pathForResource:@"key"ofType:@"txt"];

    //获取数据

    NSData *reader1 = [NSDatadataWithContentsOfFile:path1];

   

    //获取字节的个数

    int length = [reader1 length];

    //获取文本中的字符串

    NSString *ges = [[NSString alloc] initWithData:[reader1subdataWithRange:NSMakeRange(0, length)] encoding:NSUTF8StringEncoding];

    NSLog(@"%@",ges);

   

    NSLog(@"lenghth:%d",length);

    for(int i = 0; i < length; i++) {

        //读取数据

        [reader getBytes:&brange:NSMakeRange(i, sizeof(b))];

        NSLog(@"——–>data%d:%d", i,b);

        }

文件操作demo地址:

http://pan.baidu.com/share/link?shareid=220422&uk=1277579135



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
CSS属性参考手册 iis7站长之家
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3