root/as3/SiOPM/trunk/samples/SiOPMJavaScriptBridge/SiOPMJavaScriptBridge.as

リビジョン 2697, 6.6 kB (コミッタ: keim, コミット時期: 3 年 前)

サウンドライブラリ SiON ver0.5.3 更新 tutrial 追加など

Line 
1 package {
2     import flash.display.Sprite;
3     import flash.external.ExternalInterface;
4     import flash.system.Security;
5     import flash.events.*;
6    
7     import org.si.sion.*;
8     import org.si.sion.events.*;
9     import org.si.sion.utils.Translator;
10    
11    
12    
13    
14     public class SiOPMJavaScriptBridge extends Sprite
15     {
16     // variables
17     //--------------------------------------------------
18         public var driver:SiONDriver;
19         public var data:SiONData;
20        
21        
22        
23        
24     // constructor
25     //--------------------------------------------------
26         function SiOPMJavaScriptBridge()
27         {
28             Security.allowDomain('*');
29             driver = new SiONDriver();
30             data = new SiONData();
31             driver.autoStop = true;
32            
33             //new pcmExample(driver);
34
35             // register javascript interfaces
36             ExternalInterface.addCallback("_compile", _compile);
37             ExternalInterface.addCallback("_play",    _play);
38             ExternalInterface.addCallback("_stop",    driver.stop);
39             ExternalInterface.addCallback("_pause",   driver.pause);
40             ExternalInterface.addCallback("_trans",   Translator.tsscp);
41             ExternalInterface.addCallback("_volume",  _volume);
42             ExternalInterface.addCallback("_pan",     _pan);
43             ExternalInterface.addCallback("_position",_position);
44            
45             // register handlers
46             driver.addEventListener(SiONEvent.QUEUE_PROGRESS, _onCompileProgress);
47             driver.addEventListener(SiONEvent.QUEUE_COMPLETE, _onCompileComplete);
48             driver.addEventListener(ErrorEvent.ERROR,         _onError);
49             driver.addEventListener(SiONEvent.STREAM,         _onStream);
50             driver.addEventListener(SiONEvent.STREAM_START,   _onStreamStart);
51             driver.addEventListener(SiONEvent.STREAM_STOP,    _onStreamStop);
52             driver.addEventListener(SiONEvent.FADE_IN_COMPLETE,  _onFadeInComplete);
53             driver.addEventListener(SiONEvent.FADE_OUT_COMPLETE, _onFadeOutComplete);
54            
55             // callback onLoad
56             ExternalInterface.call('SIOPM._internal_onLoad', SiONDriver.VERSION);
57         }
58        
59        
60        
61        
62     // event handlers
63     //--------------------------------------------------
64         private function _onCompileProgress(e:SiONEvent) : void { ExternalInterface.call('SIOPM._internal_onCompileProgress', driver.jobProgress); }
65         private function _onError(e:ErrorEvent)          : void { ExternalInterface.call('SIOPM._internal_onError', e.text); }
66         private function _onStream(e:SiONEvent)          : void { ExternalInterface.call('SIOPM._internal_onStream'); }
67         private function _onStreamStart(e:SiONEvent)     : void { ExternalInterface.call('SIOPM._internal_onStreamStart'); }
68         private function _onStreamStop(e:SiONEvent)      : void { ExternalInterface.call('SIOPM._internal_onStreamStop'); }
69         private function _onCompileComplete(e:SiONEvent) : void { ExternalInterface.call('SIOPM._internal_onCompileComplete', data.title); }
70         private function _onFadeInComplete(e:SiONEvent)  : void { ExternalInterface.call('SIOPM._internal_onFadeInComplete'); }
71         private function _onFadeOutComplete(e:SiONEvent) : void { ExternalInterface.call('SIOPM._internal_onFadeOutComplete'); }
72        
73        
74        
75        
76     // callback function
77     //--------------------------------------------------
78         private function _compile(mml:*) : Boolean
79         {
80             if (mml) {
81                 driver.compileQueue(mml, data);
82                 driver.startQueue(200);
83                 return true;
84             }
85             return false;
86         }
87        
88        
89         private function _play() : void
90         {
91             driver.play(data);
92         }
93        
94        
95         private function _volume(v:*) : Number
96         {
97             var vol:Number = Number(v);
98             if (!isNaN(vol)) {
99                 driver.volume = (vol<0) ? 0 : (vol>1) ? 1 : vol;
100             }
101             return driver.volume;
102         }
103
104    
105         private function _pan(p:*) : Number
106         {
107             var pan:Number = Number(p);
108             if (!isNaN(pan)) {
109                 driver.pan = (pan<-1) ? -1 : (pan>1) ? 1 : pan;
110             }
111             return driver.pan;
112         }
113        
114        
115         private function _position(p:*) : Number
116         {
117             var pos:Number = Number(p);
118             if (!isNaN(pos)) {
119                 driver.position = pos;
120             }
121             return driver.position;
122         }
123        
124        
125         private function _fadeIn(t:*) : void
126         {
127             var time:Number = Number(t);
128             if (!isNaN(time)) {
129                 driver.fadeIn(time);
130             } else {
131                 driver.fadeIn(3);
132             }
133         }
134        
135        
136         private function _fadeOut(t:*) : void
137         {
138             var time:Number = Number(t);
139             if (!isNaN(time)) {
140                 driver.fadeOut(time);
141             } else {
142                 driver.fadeOut(3);
143             }
144         }
145     }
146 }
147
148
149
150 /*
151 // special features for sample
152 import org.si.sion.SiONDriver;
153 class pcmExample {
154     [Embed(source="hit.mp3")]   private var hit_mp3:Class;
155     [Embed(source="kick.mp3")]  private var kick_mp3:Class;
156     [Embed(source="sdw.mp3")]   private var sdw_mp3:Class;
157     [Embed(source="sds.mp3")]   private var sds_mp3:Class;
158     [Embed(source="toml.mp3")]  private var toml_mp3:Class;
159     [Embed(source="tomh.mp3")]  private var tomh_mp3:Class;
160     [Embed(source="hatc.mp3")]  private var hatc_mp3:Class;
161     [Embed(source="hath.mp3")]  private var hath_mp3:Class;
162     [Embed(source="hato.mp3")]  private var hato_mp3:Class;
163     [Embed(source="crash.mp3")] private var crash_mp3:Class;
164     [Embed(source="bell.mp3")]  private var bell_mp3:Class;
165    
166    
167     function pcmExample(driver:SiONDriver)
168     {
169         driver.setPCMSound(0, new hit_mp3());
170         driver.setSamplerSound(60, new kick_mp3()); //o5c
171         driver.setSamplerSound(62, new sdw_mp3());  //o5d
172         driver.setSamplerSound(64, new sds_mp3());  //o5e
173         driver.setSamplerSound(65, new toml_mp3()); //o5f
174         driver.setSamplerSound(67, new tomh_mp3()); //o5g
175         driver.setSamplerSound(48, new hatc_mp3()); //o4c
176         driver.setSamplerSound(50, new hath_mp3()); //o4d
177         driver.setSamplerSound(52, new hato_mp3()); //o4e
178         driver.setSamplerSound(53, new crash_mp3()); //o4f
179         driver.setSamplerSound(55, new bell_mp3());  //o4g
180     }
181 }
182 */
183
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。