My favorites | Sign in
Project Logo
       
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
*
* MIT License
*
* Copyright (c) 2008, Juan Delgado - Zarate
*
* http://zarate.tv/projects/zcode/
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/

import tv.zarate.utils.Delegate;
import tv.zarate.utils.FlashVars;
import tv.zarate.utils.RightClick;
import tv.zarate.utils.Trace;
import tv.zarate.utils.MovieclipUtils;

import tv.zarate.application.Config;
import tv.zarate.application.View;

class tv.zarate.application.Model{

public var flashvars:FlashVars;

private var conf:Config;
private var view:View;
private var rightClickMenu:RightClick;

private var timeLine_mc:MovieClip;

public function Model(){

Trace.trc("zFramework up and running");

}

public function config(m:MovieClip):Void{

timeLine_mc = m;
timeLine_mc.onEnterFrame = Delegate.create(this,waitForStage);
timeLine_mc.application = this;

}

public function setSize(w:Number,h:Number):Void{
view.setSize(w,h);
}

public function enable():Void{

timeLine_mc.enabled = timeLine_mc.tabChildren = true;
view.enable();

}

public function disable():Void{

timeLine_mc.enabled = timeLine_mc.tabChildren = false;
view.disable();

}

public function remove():Void{
timeLine_mc.removeMovieClip();
}

// ******************** PRIVATE METHODS ********************

private function waitForStage():Void{

// IE takes at least 1 frame to get actual dimensions

if(Stage.width > 0 && Stage.height > 0){

delete timeLine_mc.onEnterFrame;
initialize();

}

}

private function initialize():Void{

flashvars = new FlashVars(timeLine_mc);

var xmlPath:String = flashvars.initString("fv_xmlPath","");

if(conf == null){ conf = new Config(); }
conf.flashvars = flashvars;
conf.loadXML(xmlPath,Delegate.create(this,configReady));

}

private function configReady(success:Boolean):Void{

if(success){

rightClickMenu = new RightClick();
timeLine_mc.menu = rightClickMenu;

if(view == null){ view = new View(); }
view.config(timeLine_mc.createEmptyMovieClip("view_mc",100),MovieclipUtils.isRoot(timeLine_mc),this,conf);

frameworkReady();

} else {

trace("Impossible to create config object :(");

}

}

// Model childs override this method.
// From this point onwards the common part is done
private function frameworkReady():Void{}

}
Show details Hide details

Change log

r120 by zzzarate on Aug 14, 2008   Diff
ZCode now released under MIT license.
Enjoy.
Go to: 
Project members, sign in to write a code review

Older revisions

r89 by zzzarate on Mar 29, 2008   Diff
Preloading now in place. Both for main
swf and xml data.
r76 by zzzarate on Feb 18, 2008   Diff
Again, reordering namespace.
r75 by zzzarate on Feb 18, 2008   Diff
Namespace update, removed capital
letters. "Projects", "Utils" and
"Application" go to "projects",
"utils" and "application".

...
All revisions of this file

File info

Size: 3364 bytes, 135 lines
Hosted by Google Code