0

基本的に、私は最終的にAIRアプリケーションとしてデスクトップに展開されるアプリケーションに取り組んでいます。

押したときに表示を切り替えるボタンを備えたアナログ時計とデジタル時計を作成したいと思います。これに加えて、私は以下の日付を表示したいと思いますが、私はいくつかの問題を抱えています。

私は4つのコンポーネントのうち3つについてコードを並べ替えていますが、デジタル時計、アナログ時計、日付をすべてドラッグアンドドロップデスクトップアプリケーションに表示できれば幸いですが、これまでボタンを理解しようとはしていません。最初。私がそれを分類したと言うとき、私は完全に機能するアナログ時計を持っていて、それは私がその孤独な空気を通してデスクトップに表示することができました、しかし私はドラッグアンドドロップ機能を含めませんでした。デジタル時計と日付のコンポーネントについては、ドキュメントクラスに構成する方法がわかりません。私が抱えている主な問題は、ムービークリップ内の動的テキストボックスをドキュメントクラスに参照できるかどうかわからないことです。

これは日付を表示するコードです

{
var currentTime:Date = new Date();
var month:Array = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var dayOfWeek:Array = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
date_text.text = dayOfWeek[currentTime.getDay()] + " " + currentTime.getDate() + " " + month[currentTime.getMonth()] + " " + currentTime.getFullYear();
}

ムービークリップファイル内にactionscriptフレームを配置し、ムービークリップとムービークリップ内のダイナミックテキストボックスの両方にインスタンス名「date_text」を付けました。基本的に、私はこのコードを作業ドキュメントクラスに入れる方法に苦労しています。デジタル時計と日付の関数はどちらも似ているので、どちらか一方の解決策は、おそらく私が解決策を見つけることにつながると思います。他の。

私が抱えているもう1つの問題は、1つのエアアプリケーションですべてのコンポーネントを表示する方法がわからないことです。他の4つをリンクするもう1つのドキュメントクラスファイルを作成すると仮定しますか?新しいFLAファイルをアナログ時計にリンクするだけでこれを実行しようとしましたが、機能しません。そのためのコードは以下のとおりです。

 package
{
import flash.events.Event;
import flash.display.MovieClip;

public class time1 extends MovieClip
{

    public var now:Date;
    public function time1()
    {
        // Update screen every frame
        addEventListener(Event.ENTER_FRAME,enterFrameHandler);
    }
    // Event Handling:

    function enterFrameHandler(event:Event):void
    {
        now = new Date();

        // Rotate clock hands
        hourHand_mc.rotation = now.getHours()*30+(now.getMinutes()/2);
        minuteHand_mc.rotation = now.getMinutes()*6+(now.getSeconds()/10);
        secondHand_mc.rotation = now.getSeconds()*6;
    }
}
 }

それは元の時計のドキュメントクラスです(動く手のための3つのムービークリップ、そして時計の文字盤はグラフィックであり、以下で何らかの形で参照する必要があるかもしれません)?

 package 
 {

import flash.display.MovieClip;


public class main extends MovieClip
{
    public var hourHand_mc:time1;
    public var minuteHand_mc:time1;
    public var secondHand_mc:time1;



    public function main()
    {
        hourHand_mc = new SecondHand();
        addChild(mySecondHand);
        hourHand_mc.x = 75;
        hourHand_mc.y = 75;
        minuteHand_mc = new SecondHand();
        addChild(mySecondHand);
        minuteHand_mc.x = 75;
        minuteHand_mc.y = 75;
        secondHand_mc = new SecondHand();
        addChild(mySecondHand);
        secondHand.x = 75;
        secondHand.y = 75;
    }
}

 }

これは、別のFLAファイルにメインドキュメントクラスを作成してアナログ時計をロードし、後で同じAIRアプリケーションの[デジタル時計]、[日付機能]、[表示の切り替え]ボタンを使用する試みです。

これについての助けは大歓迎です、私はチュートリアルなどを通してそれについてたくさん読んでいます、しかし私はそれを完全に理解することができないようです。

4

1 に答える 1

0

ムービークリップと、ムービークリップ内のダイナミックテキストボックスの両方にインスタンス名を付けdate_textました。

ムービークリップに別の名前を付けてから、それを使用してその中のテキストフィールドを参照してください。たとえば、ムービークリップシンボルにdate_text_MCという名前を付けてから、date_text_MC.date_text(ドット演算子に注意してください)でテキストフィールドを参照できます。

それはあなたの最初の問題を解決するはずです。

于 2013-04-27T09:42:37.797 に答える