多年来,在Flash游戏开发方面,我已经成为一个超级聪明的人.现在我正在考虑利用我的技能帮助其他游戏开发者.
我想在AS3中开发一个API,这将允许开发人员(作为开始)做以下事情:
一切都很容易直接发展.然而; 安全感变得令人沮丧.我并不期待一个坚不可摧的解决方案,我完全清楚这是不可能的,但是最有防御性的方法是什么呢?
以下是我可以在现场思考的问题:
我曾经想过将我的API转换为组件,因此无法访问代码(除非您反编译).这里的问题是它对开发人员不友好,虽然它允许我为UI创建自己的图形(而不是编码许多精灵).
除非有非常好的防反编译保护,否则私钥/公钥不起作用.
我开始怀疑这个想法是不是死路一条.
关于保护这个(或部分)的任何建议都会很棒.
我已经有一段时间了,现在一直试图找出一种有效的方法,看看是否存在其他东西的视线.一个很好的例子就是如果它可以看到你的话,有一个向你发射火箭的球体 - 但显然不是你在墙后面.
以下是我通常如何做到这一点:
function cast(end:GameObject, walls:Array, accuracy:uint=10):Object
{
var xp:Number = skin.x;
var yp:Number = skin.y;
var ang:Number = Math.atan2(end.skin.y - yp, end.skin.x - xp);
var xvel:Number = Math.cos(ang)*accuracy;
var yvel:Number = Math.sin(ang)*accuracy;
var i:uint = 0;
for(i; i<800/accuracy; i+=accuracy)
{
xp += xvel;
yp += yvel;
var j:GameObject;
for each(j in walls)
{
if(j.skin.hitTestPoint(xp, yp))
return {visible:false, x:xp, y:yp};
}
}
return {visible:true};
}
Run Code Online (Sandbox Code Playgroud)
使用这个基本上是:
var sight:Object = cast(player, impassable);
if(sight.visible) trace('can see');
else trace('cant see - collision …Run Code Online (Sandbox Code Playgroud) 首先要注意:从数学上讲,我根本不熟练.
我在iPhone上玩了一个游戏,你按下了一个点,箭头从你的城堡开始,它总是与你按下的点相交.我想做一个类似的游戏,认为这将是一个简单的快速制作; 然后我意识到这个数学实际上超出了我的技能水平.
我假设他们正在使用一个抛物线公式或某些东西来确定箭头启动时所需的速度和角度,以使箭头始终与点击的点相交.
我只是模糊地记得抛物线是如何从学校工作的,没有机会制定任何公式.
任何可能更容易实现的数学帮助或想法都会很棒.
我想最终在我的城堡中使用一个函数:
package
{
import avian.framework.objects.AvElement;
public class Castle extends AvElement
{
/**
* Fires an arrow from this
* @param ix The x intersection point
* @param iy The y intersection point
*/
public function fire(ix:Number, iy:Number):void
{
var ar:Arrow = new Arrow();
ar.x = x;
ar.y = y;
// define angle and velocity based on ix, iy
// ar.fireAngle = ??
// ar.fireVelocity = ??
parent.addChild(ar);
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据评论中的问题更新:
箭头没有施加任何力,例如风,摩擦等.此外,箭头的起点在整个游戏中固定(在城堡处). …
我使用JQuery制作了一个幻灯片,目前只是append()用来添加一个<img>先前定义的容器.幻灯片显示自动旋转,在最终幻灯片后返回开始并无限延续.
目前,我根本不删除容器中的上一个图像.我没有注意到性能或内存填充方面的任何变化 - 如果我继续添加元素而不删除旧元素,我在Flash中习惯的行为.
是否有必要删除旧图像,或者这些图像永远不会导致性能问题?
我想知道ObjectFlash中垃圾收集的具体类型.
我知道在这种情况下,物品将为垃圾收集做好准备:
// create
var ar:Array = [];
var mc:MovieClip = new MovieClip();
mc.addEventLisntener(blah, blah);
ar.push(mc);
addChild(mc);
// kill & gc
ar.splice(0, 1);
mc.removeEventListener(blah, blah);
removeChild(mc);
Run Code Online (Sandbox Code Playgroud)
但是如何/将如何Object在下面的情况下收集垃圾.
假设我在我的课程MartysMC中有一个函数可以解析Object:
package
{
import flash.display.MovieClip;
public class MartysMC extends MovieClip
{
/**
* Updates this
* @param obj An object containing key/value pairs to represent new property values
*/
public function update(obj:Object):void
{
var i:String;
for(i in obj)
{
this[i] = obj[i];
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试基于网络摄像头的应用程序.我开始这样的代码:
import flash.media.Camera;
import flash.media.Video;
var cam:Camera = Camera.getCamera();
a.vid1.attachCamera(cam);
a.vid1.smoothing = true;
Run Code Online (Sandbox Code Playgroud)
我的问题是视频的质量.我正在使用iMac机器,其中相机质量很好.有没有办法提高相机输出的质量?
谢谢您的帮助.
如果我在CSS文件home.css的顶部使用以下内容:
@import "overall.css";
Run Code Online (Sandbox Code Playgroud)
我是否需要(在home.css内)重新声明,@charset "utf-8";或者在包含的CSS中定义了当前文档时将其应用于当前CSS文档?
我正在尝试<img>在每个<a>具有类名的标签中选择标签customurl.
我知道我可以这样做<a>:
$(".customurl img");
Run Code Online (Sandbox Code Playgroud)
但我正在尝试弄清楚语法是什么.each样的:
$(".customurl").each(function(i)
{
var t = $(this);
// select child <img> within t
// (for this iteration)
});
Run Code Online (Sandbox Code Playgroud)
这是一个HTML片段,供进一步说明:
<a class="customurl"><img src="blah" /> Some text</a>
<a class="customurl"><img src="blah" /> Some text</a>
<a class="customurl"><img src="blah" /> Some text</a>
Run Code Online (Sandbox Code Playgroud) 我在工作中构建的大多数网站都是在Business Catalyst中开发的- 一个合理的内容管理系统.
最近我遇到了一些困难,一些网站所有者不小心破坏了他们的网站,发现它太难以更新等.
WYSIWYG编辑器非常小,这会导致内容经常崩溃.出于许多明显的原因,这可能是一个问题.样式表应用于WYSIWYG区域,这意味着经常会发生的事情只能在实际可视网站的上下文中使用.
我想知道是否有一种简单的方法可以为WYSIWYG区域中的内容加载不同的样式表.通过这种方式,我可以大大简化外观并通过这种编辑体验,在现场网站上应用更高级和更具吸引力的样式表.
这可能吗?我以为我可以像这样制作我的CSS规则:
iframe div#myElement
Run Code Online (Sandbox Code Playgroud)
因为WYSIWYG编辑器通过iframe加载页面.但这没效果.
WYSIWYG编辑器本身的视觉效果可能有用:

Flash如何处理场外元素?
显然Flash实际上并没有渲染它们(因为它们不会出现在屏幕上的任何地方),但是渲染它们的过程仍然存在,如果元素在屏幕上的话,会减慢我的游戏速度吗?
或者Flash是否会智能地忽略不属于可渲染区域的元素?
我应该手动管理移除对象DisplayList并将其重新添加为退出并进入舞台,或者这是否无关紧要?