2011-10-29 6 views
3

私はFlash Pro(CS5)でActionScript 3.0のプロジェクトに取り組んでいます。私は確認ボックスを作成したい。 Flex SDKを使用していた場合は、mx.controlsパッケージのAlertクラスを使用してこれを行うことができます。しかし、標準的なFlashライブラリには類似のコントロールは存在しないと思われ、グーグルではFlexのリファレンスにつながってしまいます。ActionScript3で警告ダイアログを作成する方法は?

+1

このクラスを試してみてください。すべてのFlexコントロールはActionScript 3で構築されており、ActionScript 2プロジェクトでは機能しません。 mx.controls.AlertクラスはFlex Frameworkの一部であり、ActionScript 3に含まれています。これはActionScript 2プロジェクトでは使用しませんでした。 – JeffryHouser

+0

私は同じ問題があるので、彼が何を意味するのか理解しています。純粋なAS3プロジェクトでは、mx.controls.Alertは存在しません(ただし、Flexプロジェクトの場合)。私はそれがAS2に存在していたと思います。 – ADB

答えて

5

はあなたが混乱して音

package com.whatever { 

//Imports 
import flash.display.Shape; 
import flash.display.Sprite; 
import flash.geom.Rectangle; 
import flash.events.MouseEvent; 

//Class 
public class AlertBox extends Sprite { 

    //Vars 
    protected var box:Shape; 
    protected var yesBtn:Sprite; 

    //Constructor 
    public function AlertBox($:Rectangle):void { 

     //Initialise 
     box = new Shape() 
     yesBtn = new Sprite() 
     addChild(box) 
     addChild(yesBtn) 

     //Render 
     with (box.graphics) { 
      lineStyle(1) 
      beginFill(0, 0.4) 
      drawRect($.x, $.y, $.width, $.height) 
      endFill() 
     } 

     with (yesBtn.graphics) { 
      lineStyle(1, 0x00FF00) 
      beginFill(0x00FF00, 0.4) 
      drawRect($.x+$.width-100, $.y$.height-40, 80, 20) 
      endFill() 
     } 

     //Events 
     yesBtn.addEventListener(MouseEvent.CLICK, yesClickHandler, false, 0, true) 
     yesBtn.addEventListener(MouseEvent.MOUSE_OVER, yesOverHandler, false, 0, true) 

    } 

    //Handlers 
    protected function yesClickHandler($):void {} 
    protected function yesOverHandler($):void {} 
2

同じアラートクラスを使用し続けることができると信じて:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       creationComplete="init()"> 

    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 

    <fx:Script> 
     <![CDATA[ 
     import mx.controls.Alert; 

     private function init():void 
     { 
      Alert.show("This is an Alert!!!"); 

     }// end function 

     ]]> 
    </fx:Script> 

</s:Application> 

[UPDATE]

私は質問を誤解することを実現した後、私はAS3のプロジェクトのためにAlertコンポーネントのために、インターネット上で見て、次を発見した:

http://developer.yahoo.com/flash/astra-flash/alertmanager/

私はフレックスフレームワークのAlertコントロールのレプリカを作成する時に私の手をしようとし、再び私の答えを更新するつもりです。私はこれがされるまでのFlash UIループをフリーズしますかなり確信している

if(ExternalInterface.available) { 

    if (ExternalInterface.call("confirm", "Should I trace 'Yes'?")) { 

    trace("Yes"); // user clicked Okay 

    } else { 

    trace("User canceled or the call failed"); 

    } 
} 

:あなたの最終的なSWFは、ブラウザで実行され、スクリプトアクセスを持っているとしている場合

+0

私は.mxmlファイルを使用しませんでした。私は.flaファイルを使用しました。as3でmxコントロールをインポートできません。 – Mercy

+0

@LeemaRose純粋なas3プロジェクトでAlertコントロールを使用したいと考えています。さて、私の答えを変えるチャンスを与えてください。 – Taurayi

+0

yaありがとうTaurayi – Mercy

2

、あなただけJavaScript PopUp Boxesのいずれかを使用することができますJavaScript関数が返ってくるので、あなたがしたいときに必ず呼び出してください。

関連する問題