dima-ruboss4ruby 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Generators +7 -0
- data/History.txt +4 -0
- data/Manifest.txt +116 -0
- data/README.rdoc +23 -0
- data/gpl-3.0.txt +674 -0
- data/lib/ruboss4ruby.rb +84 -0
- data/lib/ruboss4ruby/active_foo.rb +221 -0
- data/lib/ruboss4ruby/active_record_tasks.rb +75 -0
- data/lib/ruboss4ruby/configuration.rb +59 -0
- data/lib/ruboss4ruby/datamapper_foo.rb +25 -0
- data/lib/ruboss4ruby/generated_attribute.rb +61 -0
- data/lib/ruboss4ruby/tasks.rb +80 -0
- data/merb_generators/ruboss_config.rb +103 -0
- data/merb_generators/ruboss_controller.rb +59 -0
- data/merb_generators/ruboss_flex_app.rb +67 -0
- data/merb_generators/ruboss_resource.rb +37 -0
- data/merb_generators/ruboss_resource_controller.rb +80 -0
- data/merb_generators/ruboss_scaffold.rb +157 -0
- data/merb_generators/templates/ruboss_config/actionscript.properties +16 -0
- data/merb_generators/templates/ruboss_config/actionscriptair.properties +16 -0
- data/merb_generators/templates/ruboss_config/expressInstall.swf +0 -0
- data/merb_generators/templates/ruboss_config/flex.properties +2 -0
- data/merb_generators/templates/ruboss_config/html-template/AC_OETags.js +276 -0
- data/merb_generators/templates/ruboss_config/html-template/history/history.css +6 -0
- data/merb_generators/templates/ruboss_config/html-template/history/history.js +645 -0
- data/merb_generators/templates/ruboss_config/html-template/history/historyFrame.html +29 -0
- data/merb_generators/templates/ruboss_config/html-template/index.template.html +121 -0
- data/merb_generators/templates/ruboss_config/html-template/playerProductInstall.swf +0 -0
- data/merb_generators/templates/ruboss_config/index.html.erb +18 -0
- data/merb_generators/templates/ruboss_config/mainair-app.xml +134 -0
- data/merb_generators/templates/ruboss_config/project.properties +18 -0
- data/merb_generators/templates/ruboss_config/projectair.properties +24 -0
- data/merb_generators/templates/ruboss_config/ruboss.yml +16 -0
- data/merb_generators/templates/ruboss_config/swfobject.js +5 -0
- data/merb_generators/templates/ruboss_controller/controller.as.erb +40 -0
- data/merb_generators/templates/ruboss_flex_app/mainapp.mxml +34 -0
- data/merb_generators/templates/ruboss_resource_controller/controller_ar.rb.erb +49 -0
- data/merb_generators/templates/ruboss_resource_controller/controller_dm.rb.erb +46 -0
- data/merb_generators/templates/ruboss_resource_controller/spec/controllers/%file_name%_spec.rb +7 -0
- data/merb_generators/templates/ruboss_resource_controller/spec/requests/%file_name%_spec.rb +1 -0
- data/merb_generators/templates/ruboss_resource_controller/test/controllers/%file_name%_test.rb +17 -0
- data/rails_generators/ruboss_config/USAGE +18 -0
- data/rails_generators/ruboss_config/ruboss_config_generator.rb +114 -0
- data/rails_generators/ruboss_config/templates/actionscript.properties +16 -0
- data/rails_generators/ruboss_config/templates/actionscriptair.properties +16 -0
- data/rails_generators/ruboss_config/templates/expressInstall.swf +0 -0
- data/rails_generators/ruboss_config/templates/flex.properties +2 -0
- data/rails_generators/ruboss_config/templates/html-template/AC_OETags.js +276 -0
- data/rails_generators/ruboss_config/templates/html-template/history/history.css +6 -0
- data/rails_generators/ruboss_config/templates/html-template/history/history.js +645 -0
- data/rails_generators/ruboss_config/templates/html-template/history/historyFrame.html +29 -0
- data/rails_generators/ruboss_config/templates/html-template/index.template.html +121 -0
- data/rails_generators/ruboss_config/templates/html-template/playerProductInstall.swf +0 -0
- data/rails_generators/ruboss_config/templates/index.html.erb +18 -0
- data/rails_generators/ruboss_config/templates/mainair-app.xml +134 -0
- data/rails_generators/ruboss_config/templates/mainapp-config.xml +21 -0
- data/rails_generators/ruboss_config/templates/mainapp.mxml +31 -0
- data/rails_generators/ruboss_config/templates/project-textmate.erb +52 -0
- data/rails_generators/ruboss_config/templates/project.properties +18 -0
- data/rails_generators/ruboss_config/templates/projectair.properties +24 -0
- data/rails_generators/ruboss_config/templates/ruboss.yml +14 -0
- data/rails_generators/ruboss_config/templates/ruboss_tasks.rake +5 -0
- data/rails_generators/ruboss_config/templates/swfobject.js +5 -0
- data/rails_generators/ruboss_controller/USAGE +11 -0
- data/rails_generators/ruboss_controller/ruboss_controller_generator.rb +31 -0
- data/rails_generators/ruboss_controller/templates/controller.as.erb +40 -0
- data/rails_generators/ruboss_scaffold/USAGE +35 -0
- data/rails_generators/ruboss_scaffold/ruboss_scaffold_generator.rb +177 -0
- data/rails_generators/ruboss_scaffold/templates/component.mxml.erb +149 -0
- data/rails_generators/ruboss_scaffold/templates/controller.rb.erb +97 -0
- data/rails_generators/ruboss_scaffold/templates/fixtures.yml.erb +35 -0
- data/rails_generators/ruboss_scaffold/templates/migration.rb.erb +19 -0
- data/rails_generators/ruboss_scaffold/templates/model.as.erb +42 -0
- data/rails_generators/ruboss_scaffold/templates/model.rb.erb +11 -0
- data/rails_generators/ruboss_yaml_scaffold/USAGE +14 -0
- data/rails_generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb +44 -0
- data/rcl-1.0.txt +0 -0
- metadata +197 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
class <%= class_name %> < Application
|
2
|
+
provides :xml, :fxml
|
3
|
+
|
4
|
+
# GET /<%= resource_path %>
|
5
|
+
def index
|
6
|
+
@<%= plural_model %> = <%= model_class_name %>.find(:all)
|
7
|
+
display @<%= plural_model %>
|
8
|
+
end
|
9
|
+
|
10
|
+
# GET /<%= resource_path %>/:id
|
11
|
+
def show
|
12
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
13
|
+
raise NotFound unless @<%= singular_model %>
|
14
|
+
display @<%= singular_model %>
|
15
|
+
end
|
16
|
+
|
17
|
+
# POST /<%= resource_path %>
|
18
|
+
def create
|
19
|
+
@<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
20
|
+
if @<%= singular_model %>.save
|
21
|
+
display @<%= singular_model %>
|
22
|
+
else
|
23
|
+
display @<%= singular_model %>.errors
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# PUT /<%= resource_path %>/:id
|
28
|
+
def update
|
29
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
30
|
+
raise NotFound unless @<%= singular_model %>
|
31
|
+
if @<%= singular_model %>.update_attributes(params[:<%= singular_model %>])
|
32
|
+
display @<%= singular_model %>
|
33
|
+
else
|
34
|
+
display @<%= singular_model %>.errors
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# DELETE /<%= resource_path %>/:id
|
39
|
+
def destroy
|
40
|
+
@<%= singular_model %> = <%= model_class_name %>.find_by_id(params[:id])
|
41
|
+
raise NotFound unless @<%= singular_model %>
|
42
|
+
if @<%= singular_model %>.destroy
|
43
|
+
display @<%= singular_model %>
|
44
|
+
else
|
45
|
+
display @<%= singular_model %>.errors
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<% with_modules(modules) do -%>
|
2
|
+
class <%= class_name %> < Application
|
3
|
+
provides :xml, :fxml
|
4
|
+
|
5
|
+
def index
|
6
|
+
@<%= plural_model %> = <%= model_class_name %>.all
|
7
|
+
display @<%= plural_model %>
|
8
|
+
end
|
9
|
+
|
10
|
+
def show
|
11
|
+
@<%= singular_model %> = <%= model_class_name %>.get(<%= params_for_get %>)
|
12
|
+
raise NotFound unless @<%= singular_model %>
|
13
|
+
display @<%= singular_model %>
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
18
|
+
if @<%= singular_model %>.save
|
19
|
+
display @<%= singular_model %>
|
20
|
+
else
|
21
|
+
display @<%= singular_model %>.errors
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def update
|
26
|
+
@<%= singular_model %> = <%= model_class_name %>.get(<%= params_for_get %>)
|
27
|
+
raise NotFound unless @<%= singular_model %>
|
28
|
+
if @<%= singular_model %>.update_attributes(params[:<%= singular_model %>]) || !@<%= singular_model %>.dirty?
|
29
|
+
display @<%= singular_model %>
|
30
|
+
else
|
31
|
+
display @<%= singular_model %>.errors
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
@<%= singular_model %> = <%= model_class_name %>.get(<%= params_for_get %>)
|
37
|
+
raise NotFound unless @<%= singular_model %>
|
38
|
+
if @<%= singular_model %>.destroy
|
39
|
+
display @<%= singular_model %>
|
40
|
+
else
|
41
|
+
display @<%= singular_model %>.errors
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end # <%= class_name %>
|
46
|
+
<% end -%>
|
@@ -0,0 +1 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), <%= go_up(modules.size + 1) %>, 'spec_helper.rb')
|
data/merb_generators/templates/ruboss_resource_controller/test/controllers/%file_name%_test.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), <%= go_up(modules.size + 1) %>, "test_helper")
|
2
|
+
|
3
|
+
# Re-raise errors caught by the controller.
|
4
|
+
class <%= full_class_name %>; def rescue_action(e) raise e end; end
|
5
|
+
|
6
|
+
class <%= full_class_name %>Test < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@controller = <%= full_class_name %>.build(fake_request)
|
10
|
+
@controller.dispatch('index')
|
11
|
+
end
|
12
|
+
|
13
|
+
# Replace this with your real tests.
|
14
|
+
def test_should_be_setup
|
15
|
+
assert false
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Description:
|
2
|
+
Generates the primary Ruboss directory structure, sets up Flex Builder
|
3
|
+
specific descriptor files and options fetches the latest published
|
4
|
+
Ruboss Framework SWC file.
|
5
|
+
|
6
|
+
You can generate Flex Builder configuration for either *pure* Flex
|
7
|
+
project or an AIR project. To generate AIR configuration pass the -a
|
8
|
+
(--air) option to the generator.
|
9
|
+
|
10
|
+
Examples:
|
11
|
+
`./script/generate ruboss_config` # generates project structure and a
|
12
|
+
# default Flex app configuration. Fetches
|
13
|
+
# latest ruboss framework SWC to "lib"
|
14
|
+
# folder
|
15
|
+
`./script/generate ruboss_config -a` # as above but generates an AIR app
|
16
|
+
# and configuration
|
17
|
+
`./script/generate ruboss_config -s` # generates Flex app but does not fetch
|
18
|
+
# the ruboss framework SWC.
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
|
3
|
+
class RubossConfigGenerator < Rails::Generator::Base
|
4
|
+
include Ruboss::Configuration
|
5
|
+
|
6
|
+
attr_reader :project_name,
|
7
|
+
:flex_project_name,
|
8
|
+
:base_package,
|
9
|
+
:base_folder,
|
10
|
+
:command_controller_name,
|
11
|
+
:component_names,
|
12
|
+
:application_tag,
|
13
|
+
:use_air
|
14
|
+
|
15
|
+
def initialize(runtime_args, runtime_options = {})
|
16
|
+
super
|
17
|
+
@project_name, @flex_project_name, @command_controller_name, @base_package, @base_folder = extract_names
|
18
|
+
|
19
|
+
# if we are updating main file only we probably want to maintain the type of project it is
|
20
|
+
if options[:main_only]
|
21
|
+
project_file_name = APP_ROOT + '/.project'
|
22
|
+
if File.exist?(project_file_name)
|
23
|
+
puts "Cannot combine -m (--main-app) and -a (--air) flags at the same time for an existing application.\n" <<
|
24
|
+
'If you want to convert to AIR, remove -m flag.' if options[:air_config]
|
25
|
+
@use_air = true if File.read(project_file_name) =~/com.adobe.flexbuilder.apollo.apollobuilder/m
|
26
|
+
else
|
27
|
+
puts "Flex Builder project file doesn't exist. You should run 'ruboss_config' with -a (--air) option " <<
|
28
|
+
"or no arguments first to generate primary project structure."
|
29
|
+
exit 0;
|
30
|
+
end
|
31
|
+
else
|
32
|
+
@use_air = options[:air_config]
|
33
|
+
end
|
34
|
+
|
35
|
+
if @use_air
|
36
|
+
@application_tag = 'WindowedApplication'
|
37
|
+
else
|
38
|
+
@application_tag = 'Application'
|
39
|
+
end
|
40
|
+
|
41
|
+
@component_names = []
|
42
|
+
if File.exists?("app/flex/#{base_folder}/components/generated")
|
43
|
+
@component_names = list_mxml_files("app/flex/#{base_folder}/components/generated")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def manifest
|
48
|
+
record do |m|
|
49
|
+
if !options[:main_only]
|
50
|
+
m.file 'ruboss_tasks.rake', 'lib/tasks/ruboss_tasks.rake'
|
51
|
+
m.file 'flex.properties', '.flexProperties'
|
52
|
+
m.file 'ruboss.yml', 'config/ruboss.yml'
|
53
|
+
if @use_air
|
54
|
+
m.template 'actionscriptair.properties', '.actionScriptProperties'
|
55
|
+
m.template 'projectair.properties', '.project'
|
56
|
+
else
|
57
|
+
m.template 'actionscript.properties', '.actionScriptProperties'
|
58
|
+
m.template 'project.properties', '.project'
|
59
|
+
end
|
60
|
+
|
61
|
+
m.directory 'html-template/history'
|
62
|
+
%w(index.template.html AC_OETags.js playerProductInstall.swf).each do |file|
|
63
|
+
m.file "html-template/#{file}", "html-template/#{file}"
|
64
|
+
end
|
65
|
+
|
66
|
+
%w(history.css history.js historyFrame.html).each do |file|
|
67
|
+
m.file "html-template/history/#{file}", "html-template/history/#{file}"
|
68
|
+
end
|
69
|
+
|
70
|
+
%w(components controllers commands models events).each do |dir|
|
71
|
+
m.directory "app/flex/#{base_folder}/#{dir}"
|
72
|
+
end
|
73
|
+
|
74
|
+
m.directory "app/flex/#{base_folder}/components/generated"
|
75
|
+
|
76
|
+
framework_release = Ruboss::RUBOSS_FRAMEWORK_VERSION
|
77
|
+
framework_distribution_url = "http://ruboss.com/releases/ruboss-#{framework_release}.swc"
|
78
|
+
framework_destination_file = "lib/ruboss-#{framework_release}.swc"
|
79
|
+
|
80
|
+
if !options[:skip_framework] && !File.exist?(framework_destination_file)
|
81
|
+
puts "fetching #{framework_release} framework binary from: #{framework_distribution_url} ..."
|
82
|
+
open(framework_destination_file, "wb").write(open(framework_distribution_url).read)
|
83
|
+
puts "done. saved to #{framework_destination_file}"
|
84
|
+
end
|
85
|
+
|
86
|
+
m.file 'swfobject.js', 'public/javascripts/swfobject.js'
|
87
|
+
m.file 'expressInstall.swf', 'public/expressInstall.swf'
|
88
|
+
m.template 'index.html.erb', 'public/index.html'
|
89
|
+
|
90
|
+
m.dependency 'ruboss_controller', @args
|
91
|
+
end
|
92
|
+
m.template 'project-textmate.erb', "#{project_name.underscore}.tmproj"
|
93
|
+
m.template 'mainapp.mxml', File.join('app/flex', "#{project_name}.mxml")
|
94
|
+
m.template 'mainapp-config.xml', File.join('app/flex', "#{project_name}-config.xml")
|
95
|
+
m.template 'mainair-app.xml', File.join('app/flex', "#{project_name}-app.xml") if @use_air
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
protected
|
100
|
+
def add_options!(opt)
|
101
|
+
opt.separator ''
|
102
|
+
opt.separator 'Options:'
|
103
|
+
opt.on("-m", "--main-only", "Only generate the main Flex/AIR application file.",
|
104
|
+
"Default: false") { |v| options[:main_only] = v }
|
105
|
+
opt.on("-a", "--air", "Configure AIR project instead of Flex. Flex is default.",
|
106
|
+
"Default: false") { |v| options[:air_config] = v }
|
107
|
+
opt.on("-s", "--skip-framework", "Don't fetch the latest framework binary. You'll have to link/build the framework yourself.",
|
108
|
+
"Default: false") { |v| options[:skip_framework] = v }
|
109
|
+
end
|
110
|
+
|
111
|
+
def banner
|
112
|
+
"Usage: #{$0} #{spec.name}"
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<actionScriptProperties mainApplicationPath="<%= project_name %>.mxml" version="3">
|
3
|
+
<compiler additionalCompilerArguments="-locale en_US -keep-as3-metadata+=Resource,HasOne,HasMany,BelongsTo,DateTime,Lazy,Ignored" copyDependentFiles="true" enableModuleDebug="true" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersion="9.0.28" htmlPlayerVersionCheck="true" outputFolderPath="public/bin" rootURL="http://localhost:3000/bin" sourceFolderPath="app/flex" strict="true" useApolloConfig="false" verifyDigests="true" warn="true">
|
4
|
+
<compilerSourcePath/>
|
5
|
+
<libraryPath defaultLinkType="1">
|
6
|
+
<libraryPathEntry kind="4" path=""/>
|
7
|
+
<libraryPathEntry kind="1" linkType="1" path="lib"/>
|
8
|
+
</libraryPath>
|
9
|
+
<sourceAttachmentPath/>
|
10
|
+
</compiler>
|
11
|
+
<applications>
|
12
|
+
<application path="<%= project_name %>.mxml"/>
|
13
|
+
</applications>
|
14
|
+
<modules/>
|
15
|
+
<buildCSSFiles/>
|
16
|
+
</actionScriptProperties>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<actionScriptProperties mainApplicationPath="<%= project_name %>.mxml" version="3">
|
3
|
+
<compiler additionalCompilerArguments="-locale en_US -keep-as3-metadata+=Resource,HasOne,HasMany,BelongsTo,DateTime,Lazy,Ignored" copyDependentFiles="true" enableModuleDebug="true" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="false" htmlHistoryManagement="false" htmlPlayerVersion="9.0.28" htmlPlayerVersionCheck="true" outputFolderPath="bin-debug" sourceFolderPath="app/flex" strict="true" useApolloConfig="true" verifyDigests="true" warn="true">
|
4
|
+
<compilerSourcePath/>
|
5
|
+
<libraryPath defaultLinkType="1">
|
6
|
+
<libraryPathEntry kind="4" path=""/>
|
7
|
+
<libraryPathEntry kind="1" linkType="1" path="lib"/>
|
8
|
+
</libraryPath>
|
9
|
+
<sourceAttachmentPath/>
|
10
|
+
</compiler>
|
11
|
+
<applications>
|
12
|
+
<application path="<%= project_name %>.mxml"/>
|
13
|
+
</applications>
|
14
|
+
<modules/>
|
15
|
+
<buildCSSFiles/>
|
16
|
+
</actionScriptProperties>
|
Binary file
|
@@ -0,0 +1,276 @@
|
|
1
|
+
// Flash Player Version Detection - Rev 1.6
|
2
|
+
// Detect Client Browser type
|
3
|
+
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
|
4
|
+
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
|
5
|
+
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
|
6
|
+
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
|
7
|
+
|
8
|
+
function ControlVersion()
|
9
|
+
{
|
10
|
+
var version;
|
11
|
+
var axo;
|
12
|
+
var e;
|
13
|
+
|
14
|
+
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
|
15
|
+
|
16
|
+
try {
|
17
|
+
// version will be set for 7.X or greater players
|
18
|
+
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
19
|
+
version = axo.GetVariable("$version");
|
20
|
+
} catch (e) {
|
21
|
+
}
|
22
|
+
|
23
|
+
if (!version)
|
24
|
+
{
|
25
|
+
try {
|
26
|
+
// version will be set for 6.X players only
|
27
|
+
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
28
|
+
|
29
|
+
// installed player is some revision of 6.0
|
30
|
+
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
|
31
|
+
// so we have to be careful.
|
32
|
+
|
33
|
+
// default to the first public version
|
34
|
+
version = "WIN 6,0,21,0";
|
35
|
+
|
36
|
+
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
|
37
|
+
axo.AllowScriptAccess = "always";
|
38
|
+
|
39
|
+
// safe to call for 6.0r47 or greater
|
40
|
+
version = axo.GetVariable("$version");
|
41
|
+
|
42
|
+
} catch (e) {
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
if (!version)
|
47
|
+
{
|
48
|
+
try {
|
49
|
+
// version will be set for 4.X or 5.X player
|
50
|
+
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
51
|
+
version = axo.GetVariable("$version");
|
52
|
+
} catch (e) {
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
if (!version)
|
57
|
+
{
|
58
|
+
try {
|
59
|
+
// version will be set for 3.X player
|
60
|
+
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
61
|
+
version = "WIN 3,0,18,0";
|
62
|
+
} catch (e) {
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
if (!version)
|
67
|
+
{
|
68
|
+
try {
|
69
|
+
// version will be set for 2.X player
|
70
|
+
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
71
|
+
version = "WIN 2,0,0,11";
|
72
|
+
} catch (e) {
|
73
|
+
version = -1;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
return version;
|
78
|
+
}
|
79
|
+
|
80
|
+
// JavaScript helper required to detect Flash Player PlugIn version information
|
81
|
+
function GetSwfVer(){
|
82
|
+
// NS/Opera version >= 3 check for Flash plugin in plugin array
|
83
|
+
var flashVer = -1;
|
84
|
+
|
85
|
+
if (navigator.plugins != null && navigator.plugins.length > 0) {
|
86
|
+
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
|
87
|
+
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
|
88
|
+
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
|
89
|
+
var descArray = flashDescription.split(" ");
|
90
|
+
var tempArrayMajor = descArray[2].split(".");
|
91
|
+
var versionMajor = tempArrayMajor[0];
|
92
|
+
var versionMinor = tempArrayMajor[1];
|
93
|
+
var versionRevision = descArray[3];
|
94
|
+
if (versionRevision == "") {
|
95
|
+
versionRevision = descArray[4];
|
96
|
+
}
|
97
|
+
if (versionRevision[0] == "d") {
|
98
|
+
versionRevision = versionRevision.substring(1);
|
99
|
+
} else if (versionRevision[0] == "r") {
|
100
|
+
versionRevision = versionRevision.substring(1);
|
101
|
+
if (versionRevision.indexOf("d") > 0) {
|
102
|
+
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
|
103
|
+
}
|
104
|
+
}
|
105
|
+
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
// MSN/WebTV 2.6 supports Flash 4
|
109
|
+
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
|
110
|
+
// WebTV 2.5 supports Flash 3
|
111
|
+
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
|
112
|
+
// older WebTV supports Flash 2
|
113
|
+
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
|
114
|
+
else if ( isIE && isWin && !isOpera ) {
|
115
|
+
flashVer = ControlVersion();
|
116
|
+
}
|
117
|
+
return flashVer;
|
118
|
+
}
|
119
|
+
|
120
|
+
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
|
121
|
+
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
|
122
|
+
{
|
123
|
+
versionStr = GetSwfVer();
|
124
|
+
if (versionStr == -1 ) {
|
125
|
+
return false;
|
126
|
+
} else if (versionStr != 0) {
|
127
|
+
if(isIE && isWin && !isOpera) {
|
128
|
+
// Given "WIN 2,0,0,11"
|
129
|
+
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
|
130
|
+
tempString = tempArray[1]; // "2,0,0,11"
|
131
|
+
versionArray = tempString.split(","); // ['2', '0', '0', '11']
|
132
|
+
} else {
|
133
|
+
versionArray = versionStr.split(".");
|
134
|
+
}
|
135
|
+
var versionMajor = versionArray[0];
|
136
|
+
var versionMinor = versionArray[1];
|
137
|
+
var versionRevision = versionArray[2];
|
138
|
+
|
139
|
+
// is the major.revision >= requested major.revision AND the minor version >= requested minor
|
140
|
+
if (versionMajor > parseFloat(reqMajorVer)) {
|
141
|
+
return true;
|
142
|
+
} else if (versionMajor == parseFloat(reqMajorVer)) {
|
143
|
+
if (versionMinor > parseFloat(reqMinorVer))
|
144
|
+
return true;
|
145
|
+
else if (versionMinor == parseFloat(reqMinorVer)) {
|
146
|
+
if (versionRevision >= parseFloat(reqRevision))
|
147
|
+
return true;
|
148
|
+
}
|
149
|
+
}
|
150
|
+
return false;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
function AC_AddExtension(src, ext)
|
155
|
+
{
|
156
|
+
if (src.indexOf('?') != -1)
|
157
|
+
return src.replace(/\?/, ext+'?');
|
158
|
+
else
|
159
|
+
return src + ext;
|
160
|
+
}
|
161
|
+
|
162
|
+
function AC_Generateobj(objAttrs, params, embedAttrs)
|
163
|
+
{
|
164
|
+
var str = '';
|
165
|
+
if (isIE && isWin && !isOpera)
|
166
|
+
{
|
167
|
+
str += '<object ';
|
168
|
+
for (var i in objAttrs)
|
169
|
+
str += i + '="' + objAttrs[i] + '" ';
|
170
|
+
str += '>';
|
171
|
+
for (var i in params)
|
172
|
+
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
|
173
|
+
str += '</object>';
|
174
|
+
} else {
|
175
|
+
str += '<embed ';
|
176
|
+
for (var i in embedAttrs)
|
177
|
+
str += i + '="' + embedAttrs[i] + '" ';
|
178
|
+
str += '> </embed>';
|
179
|
+
}
|
180
|
+
|
181
|
+
document.write(str);
|
182
|
+
}
|
183
|
+
|
184
|
+
function AC_FL_RunContent(){
|
185
|
+
var ret =
|
186
|
+
AC_GetArgs
|
187
|
+
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
|
188
|
+
, "application/x-shockwave-flash"
|
189
|
+
);
|
190
|
+
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
191
|
+
}
|
192
|
+
|
193
|
+
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
|
194
|
+
var ret = new Object();
|
195
|
+
ret.embedAttrs = new Object();
|
196
|
+
ret.params = new Object();
|
197
|
+
ret.objAttrs = new Object();
|
198
|
+
for (var i=0; i < args.length; i=i+2){
|
199
|
+
var currArg = args[i].toLowerCase();
|
200
|
+
|
201
|
+
switch (currArg){
|
202
|
+
case "classid":
|
203
|
+
break;
|
204
|
+
case "pluginspage":
|
205
|
+
ret.embedAttrs[args[i]] = args[i+1];
|
206
|
+
break;
|
207
|
+
case "src":
|
208
|
+
case "movie":
|
209
|
+
args[i+1] = AC_AddExtension(args[i+1], ext);
|
210
|
+
ret.embedAttrs["src"] = args[i+1];
|
211
|
+
ret.params[srcParamName] = args[i+1];
|
212
|
+
break;
|
213
|
+
case "onafterupdate":
|
214
|
+
case "onbeforeupdate":
|
215
|
+
case "onblur":
|
216
|
+
case "oncellchange":
|
217
|
+
case "onclick":
|
218
|
+
case "ondblClick":
|
219
|
+
case "ondrag":
|
220
|
+
case "ondragend":
|
221
|
+
case "ondragenter":
|
222
|
+
case "ondragleave":
|
223
|
+
case "ondragover":
|
224
|
+
case "ondrop":
|
225
|
+
case "onfinish":
|
226
|
+
case "onfocus":
|
227
|
+
case "onhelp":
|
228
|
+
case "onmousedown":
|
229
|
+
case "onmouseup":
|
230
|
+
case "onmouseover":
|
231
|
+
case "onmousemove":
|
232
|
+
case "onmouseout":
|
233
|
+
case "onkeypress":
|
234
|
+
case "onkeydown":
|
235
|
+
case "onkeyup":
|
236
|
+
case "onload":
|
237
|
+
case "onlosecapture":
|
238
|
+
case "onpropertychange":
|
239
|
+
case "onreadystatechange":
|
240
|
+
case "onrowsdelete":
|
241
|
+
case "onrowenter":
|
242
|
+
case "onrowexit":
|
243
|
+
case "onrowsinserted":
|
244
|
+
case "onstart":
|
245
|
+
case "onscroll":
|
246
|
+
case "onbeforeeditfocus":
|
247
|
+
case "onactivate":
|
248
|
+
case "onbeforedeactivate":
|
249
|
+
case "ondeactivate":
|
250
|
+
case "type":
|
251
|
+
case "codebase":
|
252
|
+
ret.objAttrs[args[i]] = args[i+1];
|
253
|
+
break;
|
254
|
+
case "id":
|
255
|
+
case "width":
|
256
|
+
case "height":
|
257
|
+
case "align":
|
258
|
+
case "vspace":
|
259
|
+
case "hspace":
|
260
|
+
case "class":
|
261
|
+
case "title":
|
262
|
+
case "accesskey":
|
263
|
+
case "name":
|
264
|
+
case "tabindex":
|
265
|
+
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
|
266
|
+
break;
|
267
|
+
default:
|
268
|
+
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
|
269
|
+
}
|
270
|
+
}
|
271
|
+
ret.objAttrs["classid"] = classid;
|
272
|
+
if (mimeType) ret.embedAttrs["type"] = mimeType;
|
273
|
+
return ret;
|
274
|
+
}
|
275
|
+
|
276
|
+
|