見出し画像

【projectItemRenamer.jsx】二次調整 67【開発記】


今回の概略

ES では Event よりも UIEvent を使うのが正義っぽい😑
EventTarget を使う場合は何かの部品を継承するのが通常っぽい…😞無駄多くね?

#jsx #開発記
#ExtendScript #AfterEffects
#Event

作業準備
忘却分実装
定義新式化
Event,EventTarget
ライブラリ調整
一次調整
UI 定義 obj 調整
UI 生成再構築
二次調整 ←今ココ
UI 追加
結果一覧 CSV
ラベル対応
第2層改装
ローカライズ対応
OTSParser 改
総合試験
最終調整
公開準備

----備忘録
ラベルカラー対応
第2層 3D レイヤー
ソロスイッチ
機能ボタン配置 ( ver 20230317_00 で断念した margine 問題)
第2層ラジオボタン化
listToCsv
ローカライズテキスト対応?
ローカライズの書式を一般的な物に修正したい
OTSParser 改
OTSPElement の property の幾つかが [PNAME.????] になってるので直値にする
 全部やる必要は無いけど nodeValue とかは直の名前なので統一するという意図

UUI 整備が一段落したらここで全体の構成に手を入れようかな🤤
現在では jsx 用の、プロジェクト名変数に全部突っ込んで obj に参照を入れて賄っていたけれどオブジェクトとして new して走らせる形に変更🤔
このオブジェクトに _debug だとか _global の参照だとか BridgeTalk.appName だとかを持たせる、と🤤
所謂いわゆる main プロセス用オブジェクトかな🤔
それとは系譜を別として _zlib が有って2系統のオブジェクトやライブラリが有って _zlib は main は参照しない様に作る😑(当然ね
STAT,INFO のコールバック統合、イベント駆動型のスコープ外参照削減とかもここでできると良いかな🤤
題目は「二次調整」🤤
ここは一次調整よりも時間掛かると思う😑

-Event を継承する方法は無いのか ( n 回目)
-有るなら detail を仕込めるようにしたい
-バブリングを停止して上位階層 UI の helpTip を有効化


前回の粗筋

Event オブジェクト改修を運良く思い出す回🤤



Event

以前は探すのが難しかったけれど今回は少し手がかりが有るお🤤
それは ESExtendScript は当初 E4X だと思っていたけれど実際は ES3ECMAScript3 だという事が解っているので、その準拠内で資料をあたれば良いってトコ😑
E4X だと探しにくいけれど ES3 となればまだ探せる…ただ古くなってしまってるのでそういう意味では調査の難易度は相変わらず高い…😞


継承

………

"es3 event 継承" で引いたけどまぁ出てこないお…😞ワカッテタ
あと自分の note が出てきちゃうのでよっぽど情報無いんだなって感じる🙄

………

やはり継承は無理ぽ😞


初期化

それじゃそもそも ES3 の Event の引数ってどうなってるぽ?🤔
現状では `new Event(etype,options)` で生成してるけどそもそも options を受け付けるのかどうかも怪しい😑

………
で………出てこない🙄
流石に ES3 の資料を探すのはもう厳しいっぽ?😞

https://ecma-international.org/publications-and-standards/standards/ecma-262/
ECMA-262, 3rd edition, December 1999 - PDF file

……… Event についての言及が無いお…🙄
という事は前の仕様継承で略?😑

……… 2nd も 1st も Event オブジェクトに関する言及が無いお…😭

Event: initEvent() メソッド
https://developer.mozilla.org/ja/docs/Web/API/Event/initEvent

ブラウザーの互換性
Firefox 17

………😞
この記事の情報を見て思い出した…そういや Event ってこの時代、扱いが凄い面倒だったなって…🙄
ブラウザごとにやり方が異なってて………😑

………
やっぱり以前調べた通りこちらも情報が無いっぽい😞
少なくとも type を受け取る事だけは解っているんだけど…🙄

JavaScript Tools Guide に Event について書いてないかなって探したら「目的の階層でイベント対応を止めたいなら stopPropagation() 使え」っての発見🤤
前にバブリングで「イベントのバブリングを無効化するか処理側で止めるか」という検討をしたけどどうやら UI 処理に於いては停止メソドを呼ぶのが正しいっぽい😑
ぇー…バブリングしないイベント発行させてよー🤪

参照するなら DOM-Level-3 のを見ろって書いてあるぬ🤔

………どうやら UIEvent だか UIEventBase だかを使うと initEvent を呼び出すいにしえのイベント生成ができるっぽい😑

確かに UIEvent というオブジェクトが存在してるお…🤤
でも MDN を見る限りだと initEvent を使う初期化方法はもう使わずに Event() コンストラクタにしろってあってまぁ現状では `new Event()` の方が良いのかなという感じする😑

JavaScript Tools Guide を見る限りでは UIEvent で行うのが正義っぽく、 Event() での方法は出てこなかったお…😞
必然的に EventTarget も UI 部品を基準にしてるので UI を絡めないイベント駆動を行いたい場合は手作りする他無い😞
ただ、 CustomEvent については UIEvent 継承でコンストラクタを工夫したらできるのでは?という期待は有る😑

今回は UI 側で helpTip が入ってたら stopPropagation で止める様に書き換えて上層と下層両方設定しても見れる様になるかを試そうかしらね🤤 
本来の目的は Event オブジェクトのバブリングの無効化だけどコールバック内での無効化処理が効くかどうかを試しておくのは悪くない😑


次回は

helpTip を追加して stopPropagation でどうなる?🤤

この記事が気に入ったらサポートをしてみませんか?