? asked in 電腦與網際網路其他:電腦 · 1 decade ago

Actionscript 3.0 教我!!急(15點)

1) 我需要取得 三個數字的average, 如果輸入的不是數字 displayLabel 會顯示 “please enter the correct format"

不知道為甚麼說 "undefined property average" 幫我看一下

請教我 我是初學者~~!謝謝!

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="200">

<mx:TextInput x="24" y="70" id="input1" restrict="“0-9.\-”" editable="true"/>

<mx:TextInput x="220" y="70" id="input2"/>

<mx:TextInput x="419" y="70" id="input3"/>

<mx:Label x="33" y="44" text="first" id="label1"/>

<mx:Label x="220" y="27" text="second" id="label2" fontFamily="Verdana" fontSize="16"/>

<mx:Label x="429" y="33" text="third" id="label3" color="#CF1A1A"/>

<mx:Script>

<![CDATA[

public function showInput():void

{

// Create a method to find average i.e. sum the three inputs and divide by 3

var myNumber:Number = Number(input1.text);

var myNumber1:Number = Number(input2.text);

var myNumber2:Number = Number(input3.text);

var sum:Number = myNumber+myNumber1+myNumber2;

var average:Number = sum/3;

}

]]>

</mx:Script>

<mx:Button x="24" y="124" label="Combine to an average of:" id="averageButton" fontWeight="bold" width="273" height="27" fontSize="12" click="displayLabel.text=String(average);"/>

<mx:Label x="327" y="129" id="displayLabel"/>

</mx:Application>

2) 可不可以用最簡單的方式 告訴我寫程式的流程跟基本的 format? 我常常 code 會少東西 T.T

謝謝!!

Update:

1. 我覺得我的concept 還是不太懂 比如說 user 在textfield 裡面打了字。問題是program 要去哪裡抓著個information.

displayLabel.text= "Average:"+(myNumber1+myNumber2+myNumber3)/3; (這個意思使說 displayLabel 上該呈現的字嗎)

2. 我還是不太懂 declare a variable, instantiate, calling a method 這些東西的concept

Update 2:

3. 可以解釋一下 下面這部份嗎? 我還是不太懂寫 function or method 到底是怎樣

import flash.events.TextEvent;

import mx.controls.Alert;

public function showInput():void

謝謝ㄌㄡ~!!!

Update 3:

這個部份我完全不會耶 可以line by line 解釋嗎?

public function tiFocusOutHandler(event:Event):void{

var pattern:RegExp = /^[-+]?[0-9]*\.?[0-9]+$/;

if(pattern.exec(event.target.text)==null){

Alert.show(event.target.text,"Incorrect Number Format!");

Update 4:

1. 參考網路 : 我已經把 adobe 出的 actionscript 3.0 手冊 也查了許多相關的java 的東西 都快看完了 但還是不太懂

2.學校一部份的作業 因為之前學的入門課沒學好 所以現在比較吃力 想重新把他學好

3. 可以跟你要 msn 嗎? 不好意思

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    -------------------------- mxml ------------------------------

    <?xml version="1.0" encoding="utf-8"?>

    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="200">

    <mx:TextInput x="24" y="70" id="input1" focusOut="tiFocusOutHandler(event)" />

    <mx:TextInput x="220" y="70" id="input2" focusOut="tiFocusOutHandler(event)"/>

    <mx:TextInput x="419" y="70" id="input3" focusOut="tiFocusOutHandler(event)"/>

    <mx:Label x="33" y="44" text="first" id="label1"/>

    <mx:Label x="220" y="27" text="second" id="label2" fontFamily="Verdana" fontSize="16"/>

    <mx:Label x="429" y="33" text="third" id="label3" color="#CF1A1A"/>

    <mx:Script>

    <![CDATA[

    import flash.events.TextEvent;

    import mx.controls.Alert;

    public function showInput():void

    {

    var myNumber1:Number = Number(input1.text);

    var myNumber2:Number = Number(input2.text);

    var myNumber3:Number = Number(input3.text);

    displayLabel.text= "Average:"+(myNumber1+myNumber2+myNumber3)/3;

    }

    public function tiFocusOutHandler(event:Event):void{

    var pattern:RegExp = /^[-+]?[0-9]*\.?[0-9]+$/;

    if(pattern.exec(event.target.text)==null){

    Alert.show(event.target.text,"Incorrect Number Format!");

    }

    }

    ]]>

    </mx:Script>

    <mx:Button x="24" y="124" label="Combine to an average of:" id="averageButton" click="showInput()" />

    <mx:Label x="327" y="129" width="100" text="Average:" id="displayLabel"/>

    </mx:Application>

    ----------------------------------------------------------------------------------

    1. 對於初學者一開始就先使用Flex Project來學ActionScript是會比較複雜一點(因為容易受到原始碼上有許多其他元件的定義訊息所干擾)。

    2. 你使用了click="displayLabel.text=String(average); 那誰來呼叫showInput()?

    3. 如果你要告訴輸入者他的格式錯誤,應該是等它將某一個textInput給輸入完時才確認。所以這裡我使用focusOut加上 regular expression來做判斷。

    4. 如果你這個Flex Project並不是交功課用的話,我建議你先從基礎的ActionScript 3.0開始學起(建議使用Flash的環境會比較容易上手點,不然你直接使用Flex裡的 ActionScript project會不知從何下手)。

    5. 但如果你是需要建立Web Application不得已要使用Flex的話,那我還是建議你從最基礎的Flex

    2009-01-24 00:48:44 補充:

    請問你的參考資料是什麼?書籍?網路?教材?

    請問你寫這個小程式的目的是什麼?作業?純粹學習?

    我必須了解動機跟工具,我才有一個比較好的回答方向,因為很明顯的你必須從很基礎很基礎開始學,所以如果要line by line的解釋,我很難用yahoo知識來回答,因為篇幅會很大。

    2009-01-24 00:55:39 補充:

    下面這個網頁有ActionScript3.0 在Flash CS3的入門介紹,只有五頁,你可以參考看看

    http://www.senocular.com/flash/tutorials/as3withfl...

    2009-01-24 15:21:50 補充:

    nxforce@yahoo.com

    上面是我的email,你先mail給我吧!我看看我手上有什麼電子書可以mail給你。

    2009-01-24 15:23:31 補充:

    By the way! 你們學校很不錯,以Flex

    Source(s): personal expreience
Still have questions? Get your answers by asking now.