2013-03-04 62 views
1

我想知道如何使用动作在点击时更改变量。在点击动作时更改变量

我:

 private var test:int = 0; 

    public function thisIsTest():void{ 
     test = test + 1; 
     } 

    <mx:Image left="10" bottom="10" source="@Embed(source='Assets/blabla.png')" click="thisIsTest()" buttonMode="true"/> 

我想1我每次点击按钮“布拉布拉”添加到变量测试。

问题是它只能工作一次。

谢谢您的帮助

+0

什么是输出当您添加' trace(test)''在'test = test + 1'这行之后? – James 2013-03-05 12:12:51

回答

2

最简单的方法是使用一个MouseEvent监听器。您将聆听到任何你想被点击,并告诉该功能时,触发一个事件,执行监听器:

var test:int = 0; 

image.addEventListener(MouseEvent.CLICK, thisIsTest); 
// Will 'listen' for mouse clicks on image and execute thisIsTest when a click happens 

public function thisIsTest(e:MouseEvent):void 
{ 
    test = test + 1; 
    trace(test); 
} 

// Output on subsequent clicks 
// 1 
// 2 
// 3 
// 4 

这是否意味着像你想监听连接需要可显示对象,就像一个精灵或动画片段,但如果你使用Flash,这应该不成问题。

编辑:注释中注明的进一步行动。

将图像导入到Flash,并用它来生成SpriteMovieclip,并给它一个ActionScript链路ID(如类名):

Import image into library

// Add the image to the stage 
var img:myImage = new myImage(); 
addChild(img); 

// Assign the mouse event listener to the image 
img.addEventListener(MouseEvent.CLICK, thisIsTest); 
+0

谢谢!我的想法是每次点击时将流的缓冲区增加一秒。所以我应该这样做:public function thisIsTest(e:MouseEvent):void { test = test + 1; (测试); trace(test); netStream.bufferTime = test; }? – Marcolac 2013-03-04 15:33:07

+0

我不熟悉流缓冲区,但如果你的语法是正确的,那么是'bufferTime'会每次点击增加1。您可以将“trace(test)'行取出,只需将该变量输出到控制台,以便您可以看到它自己在增加。 – 2013-03-04 15:49:55

+0

非常感谢你!我会尝试你的解决方案并将其标记! – Marcolac 2013-03-04 15:55:05