/* * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } var codes = { 'get_slider': 'trace( flexApp.getSlider().getValue() )', 'set_check': '\n\ var currentCheckValue = flexApp.getCheck().getSelected();\n\ flexApp.getCheck().setSelected( ! currentCheckValue )\n\ ', 'invoke_as': 'flexApp.testFunc( "Hello, Actionscript World! Love, Javascript..." );', 'button_event_handler': '\n\ var callback = function() {\n\ alert("Hello, Javascript! Love, Actionscript...");\n\ }\n\ flexApp.getButton().addEventListener("click", callback);\n\ ', 'slider_event_handler': '\n\ var callback = function(event) {\n\ trace(event.getValue());\n\ }\n\ flexApp.getSlider().addEventListener("change", callback);\n\ ', 'create_datagrid': '\n\ var grid = FABridge.example.create("mx.controls.DataGrid");\n\ var col1 = FABridge.example.create("mx.controls.dataGridClasses.DataGridColumn");\n\ col1.setDataField("apples");\n\ var col2 = FABridge.example.create("mx.controls.dataGridClasses.DataGridColumn");\n\ col2.setDataField("oranges");\n\ grid.setColumns( [col1, col2] );\n\ grid.setWidth(300);\n\ grid.setDataProvider( [ { apples: 12, oranges: 32 }, { apples: 7, oranges: 47 }, { apples: 14, oranges:21 } ] );\n\ flexApp.getPanel().addChild(grid);\n\ grid.addEventListener("change", function(event) { trace("apples: " + event.getTarget().getSelectedItem().apples); } );\n\ ', 'make_rect': '\n\ var spr = FABridge.example.create("flash.display.Sprite");\n\ trace(spr);\n\ var g = spr.getGraphics();\n\ g.beginFill(0xFF0000);\n\ g.lineStyle(2,2);\n\ g.drawRect(-100,-100,200,200);\n\ g.endFill();\n\ flexApp.addChild(spr);\n\ spr.setX(300);\n\ spr.setY(300);\n\ ', 'make_chart': '\n\ var chart = FABridge.example.create("mx.charts.ColumnChart");\n\ \n\ chart.setName("chart");\n\ \n\ var s1 = FABridge.example.create("mx.charts.series.ColumnSeries");\n\ s1.setYField("apples");\n\ \n\ var s2 = FABridge.example.create("mx.charts.series.ColumnSeries");\n\ s2.setYField("oranges");\n\ \n\ chart.setSeries( [s1, s2] );\n\ chart.setWidth(300);\n\ chart.setHeight(200);\n\ \n\ flexApp.getPanel().addChild(chart);\n\ ', 'make_interpolate': '\n\ // make sure to \'create a chart\' first\n\ var chart = flexApp.getPanel().getChildByName("chart");\n\ var series = chart.getSeries();\n\ var effect = FABridge.example.create("mx.charts.effects.SeriesInterpolate");\n\ effect.setMinimumElementDuration(300);\n\ series[0].setStyle("hideDataEffect", null);\n\ series[0].setStyle("showDataEffect", effect);\n\ series[1].setStyle("hideDataEffect", null);\n\ series[1].setStyle("showDataEffect", effect);\n\ // now generate new data...\n\ ', 'make_zoom': '\n\ // make sure to \'create a chart\' first\n\ var chart = flexApp.getPanel().getChildByName("chart");\n\ var series = chart.getSeries();\n\ var effect = FABridge.example.create("mx.charts.effects.SeriesZoom");\n\ effect.setMinimumElementDuration(300);\n\ series[0].setStyle("hideDataEffect",effect);\n\ series[0].setStyle("showDataEffect",effect);\n\ series[1].setStyle("hideDataEffect",effect);\n\ series[1].setStyle("showDataEffect",effect);\n\ // now generate new data... \n\ ', 'make_data': '\n\ var chart = flexApp.getPanel().getChildByName("chart");\n\ \n\ var dp = [];\n\ for(var i=0; i < 30; i++) {\n\ dp.push( {apples: Math.random()*100, oranges: Math.random()*100} );\n\ }\n\ chart.setDataProvider(dp);\n\ ', 'make_spinner': '\n\ var spr = FABridge.example.create("flash.display.Sprite");\n\ trace(spr);\n\ var g = spr.getGraphics();\n\ g.beginFill(0xFF0000);\n\ g.lineStyle(2,2);\n\ g.drawRect(-100,-100,200,200);\n\ g.endFill();\n\ flexApp.addChild(spr);\n\ spr.setX(300);\n\ spr.setY(300);\n\ \n\ var speed = Math.random() * 13;\n\ flexApp.getStage().addEventListener("enterFrame", function(e) {\n\ spr.setRotation(spr.getRotation() + speed);\n\ });\n\ ' }; function updateCode(event) { var code; if(typeof(event) == "string") { code = event; } else { var elt = getEventTarget(event); code = elt['id']; } if (typeof codes[code] != "undefined") { newCode = codes[code]; } $("expr").value = "var flexApp = FABridge.example.root();\n\n" + newCode; } function testEval() { var funcExpr = $("expr").value; eval(funcExpr); } function trace(msg) { $("output").value = msg.toString() + "\n" + $("output").value; } function getEventTarget(e) { if (/Explorer/.test(navigator.appName)) return e.srcElement; else return e.target; } function dumpit(e) { var out = ""; for (var aProp in e) out += ("obj[" + aProp + "] = " + e[aProp]) + "\n"; trace(out); }