在下面的代码中,我试图加载一些图像,并在它们单独加载后立即将它们放入舞台.但它被窃听,因为只显示最后一张图像.我怀疑这是一个关闭问题.我该如何解决?AS3中的闭包行为与Java Script中的行为不一样吗?
var imageList:Array = new Array();
imageList.push({'src':'image1.jpg'});
imageList.push({'src':'image2.jpg'});
var imagePanel:MovieClip = new MovieClip();
this.addChildAt(imagePanel, 0);
for (var i in imageList) {
var imageData = imageList[i];
imageData.loader = new Loader();
imageData.loader.contentLoaderInfo.addEventListener(
Event.COMPLETE,
function() {
imagePanel.addChild(imageData.loader.content as Bitmap);
trace('Completed: ' + imageData.src);
});
trace('Starting: ' + imageData.src);
imageData.loader.load(new URLRequest(imageData.src));
}
Run Code Online (Sandbox Code Playgroud) 我不确定人们通常通过"锁定"文件意味着什么,但我想要的是对我将尝试用另一个文件打开它时会产生"指定文件正在使用"的文件执行该操作应用.
我想这样做来测试我的应用程序,看看当我尝试打开处于此状态的文件时它的行为.我试过这个:
FileStream fs = null;
private void lockToolStripMenuItem_Click(object sender, EventArgs e)
{
fs = new FileStream(@"C:\Users\Juan Luis\Desktop\corte.txt", FileMode.Open);
}
private void unlockToolStripMenuItem_Click(object sender, EventArgs e)
{
fs.Close();
}
Run Code Online (Sandbox Code Playgroud)
但显然它并没有达到我的预期,因为我能够在"锁定"时用记事本打开文件.那么如何锁定文件以便无法使用其他应用程序打开它以进行测试?
我担心我的用户会话被扫除的可能性.我正在使用默认的ASP.NET会话对象和会话cookie.我知道会话可以超时,我已将会话的超时值设置为几个小时,以避免意外超时.
但至少有两个我担心的案例.
(1)我理解ASP.NET会定期回收运行站点/ Web应用程序的应用程序域(不确定我的所有术语是否正确).在这些回收活动中进行会话吗?
(2)至少在我的开发服务器上,我对站点所做的某些更改(例如,添加新页面)似乎会导致活动会话在重新编译站点(或其中一部分)时丢失.这种情况似乎不会随着每次变化而发生,但有很多变化.我特别关注这对于我的网站上线时可能发生的变化意味着什么.我想知道我可以更新的规则,而不会导致活动会话被杀死.
谢谢你的任何指示.
我正在开发一个Android应用程序(Android 1.6),但这可能是一个更普遍的Java问题.
我有一个大约10,000个对象的ArrayList
对象包含3个字符串(firstName,middleName,lastName).
在android上向用户呈现"搜索框",他们可以通过键入部分名称来搜索特定的"对象".
我有一个类(我称之为Filterer),它在10,000个列表中搜索匹配的对象,然后将它们作为"子列表"返回.
搜索有点慢(特别是在Android手机上),我确信我没有以最有效的方式进行搜索/过滤.
有没有人对如何加快搜索有任何建议?我的代码如下.一种可能性来搜索已经包含小写和连接的每条信息的辅助"masterList"......但是可能有其他方法来改进这种搜索也会有所帮助.
TIA!
public void filterNames() {
this.filteredList.clear();
String sv = this.searchString.toString.trim().toLowerCase(); // search value
for (int i = 0; i < this.masterList.size(); i++) {
MyObject d = this.masterList.get(i);
String fn = d.getFirstName().toString().toLowerCase();
String mn = d.getMiddleName().toString().toLowerCase();
String ln = d.getLastName().toString().toLowerCase();
if (fn.indexOf(sv) >= 0 ||
md.indexOf(sv) >= 0 ||
ln.indexOf(sv) >= 0) {
this.currentList.add(d);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我希望在ASP.NET MVC 2.0 RTM中的特定视图上禁用RequestValidation.所以我添加了一些查看Page指令部分所需的内容,如下所示:
<%@ Page ValidateRequest="false" Language="C#" MasterPageFile="Path" Inherits="System.Web.Mvc.ViewPage<Path>" %>
Run Code Online (Sandbox Code Playgroud)
但RequestValidation未禁用!我还将RequestValidation属性添加到控制器中的相关操作,如下所示:
[System.Web.Mvc.ValidateInput(false)]
public System.Web.Mvc.ActionResult Create(Model instance)
{
//Do here something
}
Run Code Online (Sandbox Code Playgroud)
:')但RequestValidation也没有禁用!
在最后一次尝试我在Web.config文件中将RequestValidation设置为false,如下所示:
<pages validateRequest="false" />
Run Code Online (Sandbox Code Playgroud)
RequestValidation仍然没有关闭!
为什么?提前致谢 ;)
我正在努力解决一个非常乏味的问题.我有一个名为Nation的类和一个名为NationAlly的类
public class Nation
{
public int ID {get; set;}
public int name {get;set;}
public List<NationAlly> NationAllies {get;set;}
}
public class NationAlly
{
public int ID {get; set;}
public int level {get;set;}
public Nation toNation {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用EF 4和CodeFirst与一个名为NationsDB的DbContext来管理我在SQL Server 2008上的数据库.如果我创建一个Nation类型的新对象,我尝试调用countriesDB.SaveChanges,我得到以下异常:
"违反了多重约束.关系'CodeFirstNamespace.NationAlly_toNation'的角色'NationAlly_toNation_Target'具有多重性1或0..1."
我试图用NationAllies字段保存Nation字段为null并且不抛出此异常,数据库中的country表获取所有正确的值.
在我的数据库中,表Nation有2个字段:ID(主键),名称表NationAlly有3个字段:ID(主键),level,NationID这两个表链接的关系是NationAlly.NationID是外键和Nation .ID是主键.
不奇怪吗?在我眼中,NationAlly表应该有一个名为NationID1的字段,另一个叫做NationID2,以创建一个国家和其他国家名单之间的"关系".
我做错了什么?
我在我的Entity Framework repo上创建了这个搜索方法:
public IEnumerable<Person> GetPersonsWithFilter(string filter)
{
var items =
filter.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var query = _personRepo.All(); // Return IQueryable<Person>
foreach (var item in items)
{
query = query.Where(i => i.SearchName.Contains(item.ToLower()));
}
query.TraceSql(i => Logger.Error(i));
return query.Take(50);
}
Run Code Online (Sandbox Code Playgroud)
TraceSql输出生成的sql.如果我的过滤器是"John Landheer",则正确生成sql:
SELECT [Extent1].[PersonId] AS [PersonId] // Other fields deleted for readability
FROM [dbo].[Person] AS [Extent1]
WHERE
(( CAST(CHARINDEX(LOWER(@p__linq__0), [Extent1].[SearchName]) AS int)) > 0)
AND
(( CAST(CHARINDEX(LOWER(@p__linq__1), [Extent1].[SearchName]) AS int)) > 0)
Run Code Online (Sandbox Code Playgroud)
但是,参数是相同的:@p_ linq _0 ='landheer'和@p_ linq …
我如何传递日期时间,例如01/01/2011 21:01:34作为查询字符串?
我正在建立一个剧院预订网站,当我观看表演时,我目前通过了演出和场地,但也需要通过日期(因为这是演出的独特部分)
ActionResult看起来像这样:
public ActionResult Details(String name, String venue, String date)
{
return View(_repository.performanceDetails(name, venue, date));
}
Run Code Online (Sandbox Code Playgroud)
但是performanceDate不会工作,因为它是一个日期时间数据类型!我需要做的是删除数据的时间部分,例如00:00:00并以某种方式将剩余数据作为字符串传递,我可以用它来比较,如下所示:
public PerformanceDetails performanceDetails(String name, String venue, String date)
{
var PerformanceDetails = (from s in _db.PerformanceDetails
where s.show == name &&
s.venue == venue &&
s.performanceDate == date
select s).First();
return PerformanceDetails;
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例链接:
<%= Html.ActionLink("View Details", "Details", "Performances",
new {
name = item.show,
venue = item.venue,
date = item.performanceDate },
new {@class = "button"}) …Run Code Online (Sandbox Code Playgroud) 我可以通过直接访问asp.net成员资格用户表来更改用户名.但是,旧用户名保留在新行中,并由asp.net自动分配新的UserID.我如何阻止这种情况发生?
编辑:仅在users表和角色表中,而不是在成员资格表中.
var mUser = dc.aspnet_Users
.Where(u => u.UserId == (Guid)user.ProviderUserKey)
.Select(u => u).SingleOrDefault();
mUser.UserName = newName;
mUser.LoweredUserName = newName.ToLower();
try
{
dc.SubmitChanges();
}
catch
{
...
}
Run Code Online (Sandbox Code Playgroud) 我有以mxml声明的spark状态.我也有一个字符串常量的类.我希望我的状态名称匹配字符串常量.是否可以直接在mxml中执行此操作以及如何执行此操作?我不想使用相同的字符串,我想将name属性设置为常量的值.
码:
public static const create:String = 'create';
public static const edit:String = 'edit';
Run Code Online (Sandbox Code Playgroud)
MXML:
<s:State name="new"/>
<s:State name="edit"/>
Run Code Online (Sandbox Code Playgroud)
据我所知,状态名称需要在编译时处理,所以可能不可能.
asp.net ×3
asp.net-mvc ×3
apache-flex ×2
c# ×2
android ×1
arraylist ×1
closures ×1
code-first ×1
filter ×1
flash ×1
io ×1
java ×1
mxml ×1
upgrade ×1
validation ×1