【发布时间】:2013-02-15 12:32:55
【问题描述】:
两个问题;这次没有代码,但它们应该很简单。
1) AS3 想让我继承一个扩展 Stage 的类;我不知道如何做到这一点,因为它在包的行上给出了错误...... 代码基本上是:
package
{
import flash.whatever.Stage
public class thisclass extends Stage
{
public function thisclass()
{
}
}
}
不确定我的所有大写字母是否正确,我在学校有代码。我需要在函数中添加一些东西吗?如果有呢?
2) AS3 还希望我对变量使用属性。 var I:布尔值; 如果(我 == 真) 错误在 if 行... 我应该将其声明为 I.something 吗?改成小写? (会测试但我在学校时没有想到)
更新:我尝试使用 .value 并声明和使用布尔值作为 .something,没有任何效果,也没有尝试使用小写字母......也无法让我的空白舞台类工作...... 另一个问题:switch case 的 import flash.whatever.whatever 是什么?
新的东西:
package
{
import flash.events.*
import flash.ui.*
import flash.display.MovieClip
public class tank extends MovieClip
{
var ii:Boolean; var kk:Boolean; var ww:Boolean; var ss:Boolean;
public function tank()
{
this.addEventListener(Event.ENTER_FRAME, update);
stage.addEventListener(KeyboardEvent.KEY_UP, keyup);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);
this.x = 500; this.y = 500;
}
public function update(event:Event):void
{
var rotang = 0;
var speed;
if(ii==true)
{
rotang = rotang + 1;
}
if(kk==true)
{
rotang = rotang - 1;
}
if(ww==true)
{
rotang = rotang - 1;
}
if(speed > 0)
{
speed = speed - 1;
}
if(speed < 0)
{
speed = speed + 1;
}
if(ss==true)
{
rotang = rotang + 1;
}
if(ii==true && ww==true)
{
speed = speed + 3;
}
if(kk==true && ss==true)
{
speed = speed - 3;
}
if(speed > 30)
{
speed = 30;
}
if(speed < -30)
{
speed = -30;
}
var vy = Math.sin(this.degreesToRadians(rotang))*speed;
var vx = Math.cos(this.degreesToRadians(rotang))*speed;
this.y = this.y + vy;
this.x = this.x + vx;
this.rotation = rotang * Math.PI / 180;
}
public function degreesToRadians(param1:Number) : Number
{
return param1 * Math.PI / 180;
}
public function keyup(event:KeyboardEvent):void
{
switch(event.keyCode)
{
case 87 :
ww = false;
break;
case 83 :
ss = false;
break;
case 73 :
ii = false;
break;
case 75 :
kk = false;
break;
}
}
public function keydown(event:KeyboardEvent):void
{
switch(event.keyCode)
{
case 87 :
ww = true;
break;
case 83 :
ss = true;
break;
case 73 :
ii = true;
break;
case 75 :
kk = true;
break;
}
}
}
}
【问题讨论】:
-
AS3 是一种编程语言,它真的想要你做这些事情吗? :) 但是说真的,你不能创建一个扩展 Stage 类的类。如果可以(意味着它不会产生编译错误),我不确定你会用它做什么。当他们说它有效时,我不确定下面的答案是什么意思。但也许我今天要学点新东西。 PS:我们通常通过扩展 Sprite 或 MovieClip 类来启动我们的应用程序,这些东西是添加到舞台上的。
-
@SunilD。您可以扩展 Stage,它没有被声明为 final,但除非有人设法用他自己的子类实例替换 Flash 的本机阶段,否则它不会有太大用处。而对于 user1743752,Sunil 是对的,你可以扩展 Sprite 或 MovieClip。
-
@Vesper,谢谢!我学到了一些东西 :) 我只是尝试在 Flash Builder 中扩展 Stage 类并编译它。但很高兴我至少对这样做的“有用性”是正确的。
-
凹凸。如果我只是将其留空而没有包装或任何会导致问题的东西,我该怎么做而不是舞台课?我把要连接到舞台的类放在.fla文件中...
-
哦,关于扩展舞台的事情是一个错误,显然舞台的类应该是扩展电影剪辑的形式......
标签: actionscript-3 flash