2015-12-15 3 views
1

Я хочу передать переменную shower_cost с первой сцены на вторую сцену. Переменная будет отображаться в динамическом тексте. , когда кнопка show нажата на второй сцене, появится show_cost.Извлечение sharedObjects между сценами

Проблема здесь, кажется, что-то не так, когда вы извлекаете sharedobjects, потому что она не показывает стоимость при нажатии кнопки show.

Первая сцена ActionScript

import flash.events.MouseEvent; 
import flash.net.SharedObject; 

shower_ok_btn.addEventListener(MouseEvent.CLICK, shower_multiplyClick); 
shower_back_btn.addEventListener(MouseEvent.CLICK, shower_backClick); 

var shower_multiSym:Boolean = false; 
var shower_backSym:Boolean = false; 

shower_usage.restrict="0-9"; 
shower_power.restrict="0-9"; 
shower_power.border=true; 
shower_usage.border=true; 

var shower_input1:String; 
var shower_input2:String; 
var shower_multiResult:Number; 
var shower_costResult:Number; 
var show_shower=SharedObject.getLocal("shower"); 

function shower_multiplyClick(event:MouseEvent):void{ 
    shower_multiSym=true; 
    shower_backSym=false; 


    show_shower.data.showcost =shower_cost.text; 
    show_shower.data.showpower=shower_total_power.text; 

    shower_text_total_power.text="total power(kwh):"; 
    shower_text_cost.text="Cost (rm):"; 

    shower_total_power.border=true; 
    shower_cost.border=true; 

    shower_input1=shower_usage.text; 
    shower_input2=shower_power.text; 

    if(shower_multiSym==true){ 
     shower_multiResult=parseInt(shower_input1)*parseInt(shower_input2)/1000; 
     shower_multiResult.toString(); 
     shower_total_power.text = String(shower_multiResult); 
    } 
    else{ 
     shower_total_power.text="Please Choose an option"; 
    } 

    shower_costResult=.218*(parseInt(shower_input1)* parseInt(shower_input2))/1000; 
    shower_costResult.toString(); 
    shower_cost.text=String(shower_costResult); 
    trace(shower_costResult); 

} 

function shower_backClick(event:MouseEvent):void{ 
    shower_multiSym=false; 
    shower_backSym=true; 
    gotoAndStop(1,"Scene 2"); 
} 

stop(); 

Вторая сцена ActionScript:

import flash.net.SharedObject; 

show_btn.addEventListener(MouseEvent.CLICK,showReport); 

var state=0; 
function showReport(e:MouseEvent):void{ 

    var state=1; 

    if(state==1){ 

    Report_cost_shower.border=true; 
    var show_shower2=SharedObject.getLocal("shower"); 
    Report_cost_shower.text=show_shower2.data.showcost; 

} 
} 
stop(); 

ответ

0

Я бы не рекомендовал использовать SharedObject для передачи данных между объектами, это медленно и ненадежно. Я использую глобальный класс для этого - см https://github.com/inruntime/AS3-Global-Object

Вы можете использовать его таким образом -

import com.inruntime.utils.*; 

    // initialize the global object 
    // you have to repeat this step in every class that will use the global 
    private var $:Global = Global.getInstance(); 

    $.show_shower = shower_cost.text; 

 Смежные вопросы

  • Нет связанных вопросов^_^