![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2011
Сообщений: 9
|
Всем привет.
У меня такой вопрос - как ПРАВИЛЬНО связывать mxml и as-код? Решил порабоать с Flex, создал в FlexBuilder проект. В визуальном редакторе накидал компонентов, затем в mxml в теге написал несколько функций - в некоторых идет работа с компонентами (например изменение бэкграунда). И вот, количество строк кода приблизилось к 300 и задался я вопросом - "а как отделить as-код от mxml?" Вариант 1: Директива - в as3 не рекомендуется; Вариант 2: - простой перенос функций в as-файл - все работает, НО - этот as не проверяется средой на ошибки и я не могу просматривать свойства компонентов созданных в mxml. Вариант 3: Создать as-класс, импортировать его в mxml, затем создать объект и работать с методами созданного объекта. Проблема - придется передавать ссылки на каждый компонент из mxlm в as-класс. Какие еще варианты возможны? |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
Не то, чтобы не рекомендуется, но заменено на директиву include.
В среде Flash Builder 4 такая связь отслеживается. Работает подсветка методов и свойств mxml-объектов. По крайней мере тех, которые расположены в mxml-файле с данной директивой. Последний раз редактировалось zorexundra; 01.03.2011 в 16:28. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 9
|
Хм... надо поковырять этот вариант =) Спасибо!
|
|
|||||
|
|
|
|||||
|
Регистрация: Jan 2011
Сообщений: 9
|
Цитата:
). Надо еще раз попробовать... И еще такой нюанс - создаю именно flex-проект, в котором изначально есть только один mxml-файл, а тут говорится о базовом as-классе Цитата:
Последний раз редактировалось Unit81; 01.03.2011 в 17:36. Причина: доосмыслил |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 9
|
Цитата:
) ну и соответственно сейчас пытаюсь ее спроецировать на свою ситуацию...Цитата:
|
|
|||||
|
Регистрация: Feb 2011
Сообщений: 11
|
Пример использования: я по нему разобрался и сделал свою прогу уже как надо:
1. Создаём флекс-проект, называем его: FlexCodeBehind. 2. В папке src создаем папку app. 3. В папке app (это будет пакет наш) создаём файл MyClass, который будет наслед. от application, чтобы потом mxml наследовался от этого нашего MyClass. в итоге у тебя 2 файла: FlexCodeBehind.mxml и MyClass.as <?xml version="1.0" encoding="utf-8"?> <app:MyClass xmlns:app="app.*" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="myButtonClick(event)"> <mx:Button x="262" y="228" label="Button" click="myButtonClick(event)"/> </app:MyClass> // ActionScript file package app { import flash.events.MouseEvent; import mx.controls.Alert; import mx.core.Application; import flash.events.Event; public class MyClass extends Application { public function myButtonClick(e:Event):void { Alert.show("Hello from button click in code behind"); } } } Добавлено через 1 минуту В этом коде Алерт появляется при инициализации, а так же по клику мышки. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 9
|
О, класс, как-раз этого не хватало, наглядно-просто-понятно
Спасибо! |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|